java中父類和子類的關係和使用
在java中規定:一個父類可以有多個子類,但是一個子類只能有一個父類。子類可以通過extends關鍵字來繼承父類。做個比較通俗的比喻,就像一個父親可以有多個親孩子,但是一個孩子只能有一個親生父親。
1.繼承以及重寫:子類繼承父類是對父類屬性和方法的全面繼承,同時子類在繼承了父類的方法後,可對父類的方法進行重寫。
public class Son extends Fat{
private int b;
private String h1;
public void sss() {
System.out.println("我要學好英語"); //在這我們對父類中的sss()方法進行了重寫
}
public void iii() {
System.out.println("今天天氣真好"); // 在這我們添加了子類特有的方法
}
}
class Fat{
public int a=5;
private String h;
public void sss() {
System.out.println("我要學好java");
}
}
2.父類用作物件的宣告型別,構造器用子類的構造器(有點類似於介面和實現類的物件的關係)。這樣使得我們的應用場景和範圍更為靈活和廣泛。我們知道一個父類可以有多個子類,這樣我們可以在宣告的時候用父類,在具體的構造器時,我們用子類。這時,這個新生成的物件是父類型別的物件,也就是說這個物件中目前只有父類的屬性和方法(如果子類重寫,則用子類重寫的方法)。如果我們需要呼叫子類中特有的方法和屬性,則我們需要將該物件強制轉換成子類型別的物件。看下面程式碼
public class TestSon {
public static void main(String[] args) {
Fat s=new Son(); //我們在這進行了父類用作物件的宣告型別,構造器用子類的構造器。
s.sss(); //我們呼叫了物件中的sss()方法,為我們重寫過的方法
System.out.println(s.a); // 我們展示了父類中屬性a的值,此處為public(沒有進行封裝)
Son y=(Son)s; //將s物件轉