super詳解(繼承)
阿新 • • 發佈:2022-04-04
//在Java中,所有的類,都預設直接或者間接繼承objec類
// Person 人 :父類
public class Person /*extends object*/ {
public Person() {
System.out.println("Person無參執行了");
}
protected String name = "wzy";
//私有的東西無法被繼承
public void print(){
System.out.println("Person");
}
}
//學生 是 人 :派生類,子類
//子類繼承父類,就會擁有父類的全部方法!
public class Student extends Person {
private String name = "lengleng";
public Student() {
//隱藏程式碼;預設呼叫了父類的無參構造
//若父類為有參,則可以 super(“name”);呼叫父類的有參
super(); //呼叫父類的構造器,必須要在子類構造器的第一行
System.out.println("Student有參執行了");
}
public void print() {
System.out.println("Student");
}
public void text1() {
print();
this.print();
super.print();
}
public void text(String name) {
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
}
public class Application {
public static void main(String[] args) {
Student student = new Student();
//student.text("冷冷");
//student.text1();
}
}
super注意點:
1.super呼叫父類的構造方法,必須在構造方法的第一個
2.super 必須只能出現在子類的方法或者構造方法中!
3.super 和 this 不能同時呼叫構造方法
VS this
代表的物件不同:
this :本身呼叫者這個物件
super : 代表父類這個物件的應用
前提
this :沒有繼承也可以使用
super :只能在繼承的條件下才可以使用
構造方法
this :本類的構造
super :父類的構造