image.png
    image.png
    image.png
    image.png
    面向对象的特征之二: 继承性
    一、继承性的好处:
    ①减少了代码的冗余,提高了代码的复用性
    ②便于功能的扩展
    ③为之后多态性的使用,提供了前提
    二、继承性的格式: 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.子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
    四、java.lang.Obect类的理解
    1.如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.Object类
    2.所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类
    3.意味着,所有的java类具有java.lang.Object类声明的功能。
    **
    子类对象实例化的全过程
    1. 从结果上来看:(继承性)
    子类继承父类以后,就获取了父类中声明的属性或方法。
    创建子类的对象,在堆空间中,就会加载所有的父类中声明的属性。
    2.从过程生来看:
    当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的父类的结构,所以才可以看到内存中有父类的结构,子类对象才可以考虑进行调用
    明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建过一个对象,即为new的子类对象