继承
子类继承父类: 子类继承了父类的成员,即父类的实例变量和方法。子类可以重写继承下来的父类的方法,也可以加入自己的实例变量和方法。
设计继承树: ①找出具有共同属性和行为的对象。
②设计代表共同状态与行为的类。
③决定子类是否需要让某项行为(也就是方法的实现)有特定不同的运作方式。
④通过寻找使用共同行为的子类来找出更多抽象化的机会。
⑤完成类的继承层次。
方法调用: 当调用对象引用的方法时,最低阶的会胜出。即JVM会从层次树最下方开始找起,并往上寻找直到找到为止。
IS-A与HAS-A: IS-A:判断类之间是否有继承关系;
HAS-A:包含关系。
super: 用于子类中引用父类的方法并加上额外行为。
public void roam() {
super,roam();//先执行super版的roam(),再执行自定义的行为
//my own roam stuff
}
权限: 父类可以通过存取权限决定子类是否能继承某些成员。
public类型的成员会被继承;
private类型的成员不会被继承。
继承的意义: ①继承避免了重复的代码。
②继承定义出共同的协议。
多态
1.运用多态时,引用类型可以是实际对象类型的父类,即子类的对象可以赋值给父类的变量。
2.参数和返回类型也可以多态。
//多态变量
1.Java的对象变量是多态的,它们能保存不止一种类型的对象。
2.它们可以保存的是声明类型的对象,或声明类型的子类的对象。
3.当把子类的对象赋给父类的变量的时候,就发生了向上造型。
final修饰符:修饰类时表示是继承树的末端,类不能再被继承。修饰方法时可以防止该方法被覆盖。
覆盖
1.参数必须要一样,且返回类型必须要兼容。
2.不能降低方法的存取权限。
方法重载
重载即方法名称相同,但参数不同。
1.返回类型可以不同。
2.不能只改变返回类型。
3.可以更改存取权限。