1.首先執行構造語句中的super()方法
2.其次執行實例初始化語句
3.執行初始化語句裏面其他的語句
儘量減少在初始話語句中調用虛方法
請看以下實例:
public class Main{
public static void main(String []args) {
Circle circle = new Circle("circle", 1,100);
}
}
class Shape {
//第二步 初始化
String name = "未命名";
int bian = 0;
public Shape(String name,int bian) {
//第一步super()
//第三步其他語句
this.name = name;
this.bian = bian;
//注意因爲子類中重寫了此方法,所以會在super()中調用子類方法,但是此時子類temp還沒有初始化,所以temp
//還會是0,不是100
sayinfo();
}
public void sayinfo(){
System.out.println("name:"+name+"bian:"+bian);
}
}
class Circle extends Shape {
//step 2
int temp = -1;
public Circle(String name, int bian,int temp) {
//step 1
super(name, bian);
//step 3
this.temp = temp;
// 第二次執行sayinfo(),此時temp已經賦值
sayinfo();
}
public void sayinfo(){
System.out.println("子類"+name+bian+temp);
}
}