1.构造方法不能被继承
2.当实例化一个子类时,首先会调用父类的构造方法
3.当实例化一个子类对象时,如果父类的构造方法带有参数,那么子类必须要为父类的构造方法提供参数
super指针:指向当前对象的父类。
可以使用super()的形式,在子类的构造方法中给父类的构造方法传参数。
注意:构造方法是不能被其他方法调用的,所以super()的形式只能出现在构造方法中。且必须是第一条语句。
补充:super的另一个用途:
当子类重写父类的方法后,如果仍然需要执行父类方法中的代码,那么可以通过super关键字调用父类方法。
package myextend;
public class DongWu {
// 如果父类构造方法有参数就得给父类传参数
public String type;
public DongWu(String type) {
System.out.println("父类的构造方法");
}
public void run() {
System.out.println(type + "跑步");
}
}
package myextend;
public class Tiger extends DongWu {
public Tiger(String type) {
super(type);// 传参数-老虎,本质给父类的type用
System.out.println("子类的构造方法");
}
public void run() {
System.out.println(type + "跑步去追羊");
}
}
package myextend;
public class Test {
public static void main(String[] args) {
Tiger tiger = new Tiger("老虎");// new子类时给传了个参数
}
}