super詳解
- super表示的是父類
public class student extends Person {
private String name="wangwang";
public void a(String name){
System.out.println(name);//傳遞的引數
System.out.println(this.name);//呼叫的是這個類中的name
System.out.println(super.name);//呼叫的是父類中的name
}
}
public class student extends Person {
private String name="wangwang";
public void print(){
System.out.println("student");
}
public void test(){
print();//這個類的print
this.print();//呼叫的是這個類的print
super.print();//呼叫的是父類中的print
}
}
-
子類繼承父類,在執行類中創建子類物件的程序中,會先執行子類構造器,在這時程式默認在子類構造器的第一行添加了父類的無參構造,所以是先會執行父類的無參構造,然后執行子類的無參構造
要是我們干掉父類的無參構造,就需要在子類的構造中手動呼叫父類的有參構造,否則,程式默認呼叫的是無參,這時沒有無參,就會報錯
例如:
public class student extends Person { private String name="wangwang"; public student(){ super("Person");//這就是在子類的無參構造中手動呼叫父類的有參構造,必須放在第一行 } } -
super必須只能出現在子類方法或構造方法中
super和this只能出現在方法中,不能出想在屬性中,因為這就是正確的書寫,死記
this:沒有繼承也可以使用
super:沒有繼承不能使用,因為你沒有父類啊,難不成要呼叫object類嗎
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/255058.html
標籤:Java
上一篇:5年老碼農,update陳述句誤用一個雙引號,生產資料全變0了
下一篇:Nginx快速入門
