Kubernetes叢集搭建前篇(一)
阿新 • • 發佈:2020-11-05
繼承
繼承的本質時對某一批類的抽象
extends意思為擴充套件,子類是父類的擴充套件
java中類只有單繼承,沒有多繼承。子類只有一個父類,一個父類可以有多個子類
子類繼承了父類,就會擁有父類的所有方法
package OOP02.Demon2;
public class Person {
public void say(){
System.out.println("喵了一聲");
}
private int money = 100;//父類私有
}
package OOP02.Demon2; //學生繼承了Person public class Student extends Person{ //學生方法為空 }
package OOP02.Demon2;
public class Aplication {
public static void main(String[] args) {
Student student = new Student();
student.say(); //喵了一聲
// System.out.println(student.money);這句話則會報錯,因為money為父類私有,沒有繼承給字類
}
}
Application中可以直接呼叫student.say(),Student繼承了Person的方法。
父類私有的屬性子類無法繼承。
ctrl+h可以檢視繼承的關係。
在java中所有的類都預設直接或間接繼承了object類。
super
- super呼叫父類的構造方法,必須在構造方法的第一個
- super必須只能出現在子類的方法、構造方法中(不可能調到object去對吧)
- super和this不能同時呼叫構造方法,因為二者都要求寫在構造器的第一行。
通過下面程式碼實踐更好地理解:(Student是Person的子類,因為學生屬於人嘛)
從程式理解super
父類↓Person
package OOP02.Demon2; public class Person { protected String name = "陽"; public Person() { System.out.println("父構造執行"); } //若此處使用有參構造器則無參構造器消失, //子類的無參構造器由於需要呼叫父類無參構造器, //會導致子類無參構造器報錯!! /* 若此處只是用有參構造器器 為了子類無參構造器能夠執行 需要在super()中呼叫父類有參構造器!! 如果super()不寫預設呼叫無參!! */ //######################################## public void print(){ System.out.println("Person"); } }
子類↓Student
package OOP02.Demon2;
//學生繼承了Person
public class Student extends Person{
public Student() {
//這裡有一句隱藏程式碼,super(),呼叫了父類的1
super();
//呼叫父類的構造器必須在子類構造器的第一行
System.out.println("子構造執行");
}
public String name = "林";
public void name(String name){
System.out.println(name);// 形式引數name
System.out.println(this.name);//學生類定義的name
System.out.println(super.name);//父類定義的name
}//##################################################
public void print(){
System.out.println("Student");}
public void text(){
print(); //學生類裡的
this.print();//學生類裡的
super.print();//人 類裡的
//注意若父類方法為私有的super也無法呼叫
}
}
除錯↓Application
package OOP02.Demon2;
public class Aplication {
public static void main(String[] args) {
Student student = new Student();
student.name("fa");
/*
結果為fa
林
陽
*/
//#######################################################
student.text();
/*結果為
Student
Student
Person
*/
}
}
super與this的對比
(指)代表的(具體)物件不同:
this:本身呼叫者的物件
super:代表父輩物件的應用
前提不同:
this:沒有繼承也可以使用,因為只涉及類本身
super:只能繼承條件下使用,你得有個爹才能呼叫爹
構造方法不同:
this():本類的構造?????有什麼用?{顧名思義作用是呼叫一個自己的構造器,例如自己寫個有參構造器,然後使用this()在構造器中呼叫自己寫的那個有參構造器}????????
super():父類的構造