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 } }
子類繼承父類,在執行類中建立子類對象的過程當中,會先執行子類構造器,在這時程序默認在子類構造器的第一行添加了父類的無參構造,因此是先會執行父類的無參構造,而後執行子類的無參構造java
要是咱們幹掉父類的無參構造,就須要在子類的構造中手動調用父類的有參構造,不然,程序默認調用的是無參,這時沒有無參,就會報錯this
例如:code
public class student extends Person { private String name="wangwang"; public student(){ super("Person");//這就是在子類的無參構造中手動調用父類的有參構造,必須放在第一行 } }
super必須只能出如今子類方法或構造方法中對象
super和this只能出如今方法中,不能出想在屬性中,由於這就是正確的書寫,死記繼承
this:沒有繼承也能夠使用class
super:沒有繼承不能使用,由於你沒有父類啊,難不成要調用object類嗎test