面向对象高级(一)
继承的基本概念
- 继承是面向对象三大特征之一。
- 被继承的类称为父类(超类),继承父类的类称为子类(派生类)。
- 继承是指一个对象直接使用另一个对象的属性和方法。
- 通过继承可以实现代码重用。
例如:
动物(猫,狗,鸡,猪……)
鸡(家鸡,野鸡)
鸡属于动物,鸡可以继承动物的属性和方法。家鸡属于鸡,可以继承鸡的属性和方法。当然家鸡也属于动物,也可以继承动物的属性和方法。
语法:
[访问权限] class 子类明 extends 父类名{
类体定义;
}
示例:123456public class Dog{protected String name;}public class HomeDog extends Dog{//类的定义}
继承的限制
- Java只能实现单继承,也就是一个类只能有一个父类。
- 允许多层继承,即:一个子类可以有一个父类,一个父类还可以有其他的父类。
- 继承只能继承非私有的属性和方法。
- 构造方法不能被继承。
子类的实例化过程
在子类进行实例化操作的时候,首先会先让父类进行实例化操作。之后子类再自己进行实例化操作。
子类的实例化过程:
1. 子类实例化时会先调用父类的构造方法
2. 如果父类中没有默认构造方法,在子类的构造方法中必须显示的调用父类的构造方法
方法的重写
在Java中,子类可继承父类中的方法,而不需要编写相同的方法。但有时子类并不想原封不动的继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称为方法覆盖。
关于方法重写的一些特征:
1. 发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)
2. 子类抛出的异常不能超过父类相应方法的异常(子类异常不能大于父类异常)
3. 子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)
注意: 方法的重载和方法的重写不是一个概念。重载发生在同一个类当中,重写发生在子类和父类两个类之间。
super关键字
super 可以完成以下操作
1. 使用super调用父类中的属性
2. 使用super调用父类中的方法
3. 使用super调用父类中的构造方法
综合示例: