Generate:快速生成getXxx()与setXxx()方法
继承:是使类与类之间产生联系的一种方法。
继承的好处:
A:提高了代码的复用性
B:提高了代码的维护性
C:让类与类之间产生了关系,是多态的前提
继承的弊端:
A:让类与类之间产生了关系,也就让类的耦合性增强了。
开发原则:高内聚,低耦合。
内聚:就是自己完成某件事情的能力
耦合:类与类的关系
Java中类只支持单继承,不支持多继承。
Java中类支持多层继承。
Java继承中成员变量特点的特点:
A:成员变量名称不一样,使用的时候非常简单
B:成员变量名称一样的情况
在子类方法中访问变量:
a:在方法的局部范围找,如果有就使用
b:在子类的成员范围找,如果有就使用
c:在父类的成员范围找,如果有就使用
d:如果还找不到,就报错
就近原则
super和this的用法很像:
this:代表本类对象的引用
super:代表父类的存储空间(可以理解为代表父类对象的引用)
用法:
访问成员变量:
this.成员变量
super.成员变量
访问构造方法:
this(…)
super(…)
访问成员方法:
this.成员方法()
super.成员方法()
Java继承中构造方法的访问特点:
A:子类构造方法执行前都会执行父类无参构造方法
B:为什么呢?
因为子类继承父类,会继承父类的非私有成员。
而子类在初始化的时候,可能会使用父类的数据,如果父类数据没有先初始化,
子类就不能使用这些数据,所以,在子类初始化之前,一定要先完成父类数据的初始化。
注意:在子类的构造方法中,默认第一行有一条语句:super()
问题:假如父类中没有无参构造方法,怎么办呢?
A:在父类中添加一个无参构造方法。
B:可以通过super去访问父类的带参构造方法
建议使用第一种解决方案,其实就是要求我们写代码的时候,每次都手动给出无参构造方法。
方法重写:子类中出现了和父类中一模一样的方法声明的情况。
方法重写的应用:
当子类需要父类的功能,而功能主体子类又有自己的特有内容的时候,就考虑使用方法重写。
这样既保证了父类的功能,还添加了子类的特有内容。
@Override 这是注解,这个注解标记一个方法,表面该方法是重写父类的方法
方法重写的注意事项:
A:父类私有的方法不能被重写
B:子类重写父类方法时,访问权限不能更低
子类重写父类方法时,建议访问权限一模一样。
多态:同一个对象,在不同时刻体现出来的不同状态
Java中多态的前提:
A:有继承关系
B:有方法重写
C:有父类引用指向子类对象
Father f = new Father();
Son s = new Son();
Father f = new Son();
多态中成员的访问特点:
A:成员变量
编译看左边,执行看左边
B:成员方法
编译看左边,执行看右边
为什么成员变量和成员方法的访问不一样呢?
因为成员方法有重写,而变量没有。
多态的好处:提高了程序的扩展性
具体体现:定义方法的时候使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作0
多态的弊端:不能使用子类的特有功能
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象
Cat c = (Cat)a;
强制转型可以使得原来无法用的子类特有方法变得可用