目录
前言:
继承性是面向对象的特征之二。
一、继承性的好处:
①减少了代码的冗余,提高了代码的复用性
②便于功能的扩展
③为之后的多态性的使用,提供了前提
二、继承性的格式:
class A extends B{}
A:子类派生类、subclass
B:父类、超类、基类、superclass
2.1、体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法
特别的:父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构,只有因为封装性的影响,使得子类不能直接调用父类的结构而已。
2.2、子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。
子类和父类的关系,不同于子集和集合的关系。
extends:延展,扩展
三、Java中关于继承性的规定
1、一个类可以被多个子类继承
2、Java中类的单继承性:一个类只能有一个父类
3、子父类是相对的概念
4、子类直接继承的父类称为直接父类,间接继承的父类称为间接父类
5、子类继承父类以后,就获取了父类以及所有间接父类中声明的属性和方法
四、Oject类
1、如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.Oject类
2、所有的java类(除java.lang.Oject类之外)都直接或间接的继承于java.lang.Oject类
3、意味着,所有的java类具有java.lang.Oject类声明的功能
五、子类对象实例化的过程
1、从结果上看:(继承性)
子类继承父类以后,就获取了父类中声明的属性或方法。
创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。
2、从过程上看:
当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用父类的构造器,进而调用父类的父类的构造器,直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的父类的结构,所以才可以看到内存中有父类的结构,子类对象才可以考虑进行调用。
虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建过一个对象,即为new的子类对象。