封装
面向对象特征
封装性
1、封装性:当我们创建好对象后,如果直接用对象名.属性的方式给属性赋值的话,可能会出现一些不符合实际情况的问题,如腿条数为负数,所以我们不考虑用对象名.属性的方式进行赋值,而是考虑用对象名.方法的方式进行赋值
2、private:只能在类的内部使用
3、使用封装:(1)将属性私有化(2)提供公用的get、set方法
4、缺省:只在同一个包下使用
5、构造方法的作用:创建对象,new之后
定义构造方法
特点:只能用public,无返回值,构造方法名和类名必须完全相同,可以重载
有参构造方法,如果单独改变变量属性用set,全部改变用构造方法
形式:public 构造方法名 (参数){}
注意:如果给出有参构造方法一定要给出一无参的构造方法,因为系统不会再给出默认的构造方法
6、super()区分子类和父类
7、this:如果局部变量和成员变量重名,方法会就近原则使用局部变量,如果想区分的话用this。this关键字可以理解为当前使用或正在创建的对象,即通过谁调用的方法谁就是this。可以修饰属性、方法、构造方法,代表当前对象
继承性
1、定义子类:
public class 子类名 extends 父类名
2、子类除了通过继承获取父类的属性和方法外,还可以定义自己独有的方法和属性;
3、Java中继承是单继承,一个子类只能有一个父类,而一个父类可以有多个子类
4、重写(提前必须有继承)
子类继承父类以后,如果父类方法满足不了子类要求,子类可以对父类方法进行重写
规则:(1)、子类的方法名,返回值类型,参数列表和父类一模一样
(2)、子类的访问修饰符权限必须大于父类的访问修饰符权限
(3)、子类和父类方法必须同为static或者非static
多态性
1、前提:继承和接口的实现
2、多态就是一个对象的多种形态
3、包括方法的重载和重写和子类对象的多态性(父类引用指向子类对象)
4、编译期间:程序会把P2看成Persion类型,而Persion里无子类独有方法
5、程序分为两种状态,编译状态和运行状态,对于多态来说编译看左边,运行看右边
6、小转成大:向上类型转换
大转成小:向下类型转换