1.子类不能继承父类的构造方法,但是初始化子类前必须要先初始化父类;
2. 子类的构造过程中必须调用无参数父类的构造方法(程序自己就会调用);
3. 子类可以在自己的构造方法中使用super关键字调用父类的构造方法;
① 使用this关键字调用本类的另外的构造方法;
② 如调用super,则必须写在子类构造方法的第一行;
4. 若子类的构造方法中没有显示的调用父类的构造方法,则系统默认调用父类无参数的构造方法;
5. 若子类的构造方法中既没有显示的调用父类的构造方法,而父类中又没有无参数的构造方法,则编译出错;
6. Demo
Demo_1
class Animal { } class Dog extends Animal { private String furColor; Dog(String furColor){ his.furColor = furColor; } }
// 正确
Demo_2
class Animal { private String name; Animal(String name){ this.name = name; } } class Dog extends Animal { private String furColor; Dog(String name, String furColor){ super(name); this.furColor = furColor; } } // 正确
Demo_3
class Animal { private String name; Animal(){ } } class Dog extends Animal { private String furColor; Dog(String furColor){ this.furColor = furColor; } }
//正确