继承性(构造方法的访问特点)
特点:
- 子类构造方法中有一个默认隐含的"super()"调用,所以一定是先嗲用的父类构造,后执行子类构造。
Main
package cn.kobe.day01.demo05;
public class Sun extends Father{
//无参构造
public Sun(){
// super(); //调用父类【无参】构造方法(默认赠送)
System.out.println("子类构造方法!");
}
}
Father
package cn.kobe.day01.demo05;
public class Father {
public Father(){
System.out.println("父类构造方法!");
}
}
Sun
package cn.kobe.day01.demo05;
public class Sun extends Father{
//无参构造
public Sun(){
// super(); //调用父类【无参】构造方法(默认赠送)
System.out.println("子类构造方法!");
}
}
结果
父类无参构造方法!
子类构造方法
2.子类构造可以通过super关键字来调用父类重载构造。
Main
package cn.kobe.day01.demo05;
public class DemoConstructor {
public static void main(String[] args) {
Sun sun = new Sun();
}
}
Father
package cn.kobe.day01.demo05;
public class Father {
public Father(){
System.out.println("父类无参构造方法!");
}
public Father(int num){
System.out.println("父类有参构造方法!");
}
}
Sun
package cn.kobe.day01.demo05;
public class Sun extends Father{
//无参构造
public Sun(){
// super(); //调用父类【无参】构造方法(默认赠送)
super(20);
System.out.println("子类构造方法!");
}
}
结果
父类有参构造方法!
子类构造方法!
3.super的父类构造调用,必须是子类构造方法的第一个语句,不能一个构造调用多次super
总结
子类必须调用父类构造方法,不写则赠送super(),写了则用写的指定的super()调用,super只能由一个,还必须是第一个。