1. 程式人生 > >java中父類與子類的關係以及使用

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物件轉化為Son型別的y物件
y.iii();;                           //這樣我們可以通過y物件來呼叫子類中特有的iii()方法。


int u=y.b;                     //同時我們也可以接受子類中特有的屬性b。

}

}

對這個知識點的理解和記憶中,我們可以用七個葫蘆娃和葫蘆娃爸爸(我假設的)來理解。假設葫蘆娃爸爸只有吃飯這一個技能包,七個葫蘆娃的技能點兒除了吃飯之外,分別還有比如噴火、噴火等技能包(每個人都不一樣)。故我們可以在用某一個物件時,可以先以葫蘆娃爸爸作為宣告型別,然後呢用具體的葫蘆娃進行構造。當我們在表達吃飯的動作(每個小葫蘆娃都要吃飯啊~~~)時,我們就可以用當前物件名,吃飯(方法)來表示。但是當需要用噴火(方法),我們就需要將這個物件轉化成葫蘆四娃型別的了(因為這個是他和葫蘆娃爸爸不一樣的地方,四娃特有)。

3.Object類是所有類的父類,其中有方法equals等方法。