面向对象的三大特征:
继承性(inheritance)
好处
- 减少代码的冗余,提高代码复用性
- 便于功能的扩展
- 为多态性的使用提供前提
格式class A extends B{ }
A:子类/派生类,subclass
B:父类/超类/基类,superclass
体现
- 子类会继承父类所有的结构(属性和方法)。
特别的,父类中声明为private的结构,子类可以获取到,由于封装性影响不能直接调用。 - 子类可以定义自己特有的属性和方法,实现功能的扩展。
规则
- 一个类可以被多个子类继承
- 一个类只能有一个父类(单继承性)
- 直接父类:子类直接继承的父类。间接父类:子类间接继承的父类。
- 没有显式声明一个类的父类时,则此类继承
java.lang.Object类
。即所有java类都直接或间接继承java.lang.Object类
。
子类对象实例化的全过程
- 从结果上看:子类继承父类以后,就获取了父类的属性和方法。创建子类对象时,在堆空间中会加载所有父类中声明的属性。
- 从过程上看:当通过子类构造器创建子类对象时,一定会直接或间接调用父类的构造器,直至加载了所有父类的构造器。
- 虽然创建子类对象时调用了父类构造器,但自始至终只创建类了一个对象。