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等方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM