方法重写
概述
在子父类中,有两个相同的方法
当父类的功能无法满足子类需求时
前提是方法能被继承
当子类重写父类的方法如果不用父类的功能不用super调用父类的方法就可以了
注意事项
private修饰的方法不能被重写
子类重写的方法权限修饰符不能比父类的原方法小
继承
概念
泛化,generalization
让两个类之间产生子父类关系
好处
提高代码的复用性
提高可维护性,修改只用在父类中添加就可以了
是多态的前提条件
弊端
耦合度高
一个模块和其他模块的关联度
内聚,一个模块独立完成任务的能力
特点
如果使用继承体系中最底层的类(子类),那么继承体系中的所有方法都可以使用
如果使用继承体系中最顶层的类,那么只能使用继承体系中最公共的方法
注意事项
如果有一个子类继承了一个父类,两个类有同名的变量,在调用一个子类对象使用这个变量时会按照就近原则调用
Super关键字<br>
当前对象的父类引用
父类中写无参构造的原因是因为子类默认的无参会super调用父类的无参,如果父类中没有写就会报错
构造器
子类不能继承父类的构造器,子类会默认调用父类的无参构造
必须手动给出子类的无参有参构造器,在有参构造器中使用super方法来调用父类的有参构造
This和super的区别
this
代表当前对象的引用
调用成员变量,可以调用子类的成员变量,也可以调用父类的成员变量
调用成员方法,可以调用子类和父类的成员方法
super
代表当前对象的父类引用
调用成员变量,调用父类的成员变量
调用成员方法,调用父类的成员方法
final关键字
常量必须在对象创建之前初始化
静态代码块,构造代码块,构造器都是在对象创建之前,而常量的值是确定的越早越好,所以推荐在静态代码块中对其初始化