super詳解

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
    }
}
  • 子類繼承父類,在執行類中建立子類對象的過程當中,會先執行子類構造器,在這時程序默認在子類構造器的第一行添加了父類的無參構造,因此是先會執行父類的無參構造,而後執行子類的無參構造java

    要是咱們幹掉父類的無參構造,就須要在子類的構造中手動調用父類的有參構造,不然,程序默認調用的是無參,這時沒有無參,就會報錯this

    例如:code

    public class student extends Person {
        private String name="wangwang";
        public student(){
            super("Person");//這就是在子類的無參構造中手動調用父類的有參構造,必須放在第一行
        }
    }
  • super必須只能出如今子類方法或構造方法中對象

    super和this只能出如今方法中,不能出想在屬性中,由於這就是正確的書寫,死記繼承

    this:沒有繼承也能夠使用class

    super:沒有繼承不能使用,由於你沒有父類啊,難不成要調用object類嗎test

相關文章
相關標籤/搜索