继承

复用类有组合,继承,代理三种形式;

使用关键字 extends, 表示对父类的继承;

class Parent{
    public Parent(){

    }
}

// ~~~~~~~~~

class Child extends Parent{
    public Child(){

    }
}

当生成一个 Child 对象时, Child 对象里包含一个 Parent 的子对象;

  • 生成子类的对象, 先一级级调用父类的构造方法, 再调用子类的构造方法;
  • 当父类和子类都只有默认的没有参数的构造方法时, 对父类的构造方法的调用是自动的;
  • 如果构造方法是有参数的, 则需要在子类的构造方法中使用 super() 显示调用父类的构造方法;

继承的子类可以重载父类中同名参数不同的方法;

向上转型

子类的对象, 可以视作为父类的对象

子类中变量的初始化顺序

父类变量 -> 父类构造函数 -> 子类变量初始化 -> 子类的构造函数

协变类型

指的是方法特征签名要求返回的类型是父类, 结果实际使用时返回一个子类的对象, 子类是父类的协变类型

results matching ""

    No results matching ""