本人大一狗,內容僅為個人的初體會,有誤之處請見諒。
初學者可能剛接觸一些新名詞會感覺好像很厲害的樣子,有種不明覺厲的樣子。
比如多態,泛型,繼承,接口。其實這些也並不是很難,不要被名字所嚇到,不用怕,慢慢就會理解他了。
講一下多態,我認為多態是建立在繼承的基礎之上的。
我們想看看繼承。
class father { String sex="man"; public void sport() { System.out.println("太極"); } } class son extends father { String sex="small boy"; int age=15; public void sport() { System.out.println("打球"); } } public class DuotaiDemo { public static void main(String[] args) {
father xiaoming=new son();
System.out.println(xiaoming.age); } }
這裡我們用了 子類繼承了父類,子類繼承了父類的屬性和方法,比如sex 和sport方法
class son extends father { }
即使在繼承的時候沒有任何的方法和屬性,但是因為繼承,此時子類有了父類的方法和屬性。
-------------------------------------------
所謂多態就是
father xiaoming=new son();
這裡子類對象父類引用,剛開始這裡理解可能有點繞,所以我們把他分解一下。
new son()這裡創建了一個對象,然後我們用了一個父類型 來引用他即father類
本來繼承就是大盒裝小盒,我們創建了一個大盒,這是我們用小盒來指向這個大盒。
小盒裡面裝的東西東西大盒有,但是大盒裝的(小盒以外)的東西沒有。
同樣我們父類的屬性方法子類都有,但是子類額外的屬性方法,父類沒有
而多態就是用一個小盒引來指向大盒
class son extends father {
public void homework()
{
System.out.println("do homework");
}
}
比如這裡子類 額外添加了作業方法,父類是沒有。
那麼我們回到多態,我們的子類對象有父類來引用,那麼此是這個引用的變量 調用homework是行不通的
因為父類並沒有homework方法,大盒子裡面的(小盒以外)的東西沒有
而如果是調用sport方法,調用的是子類的方法。(這是特殊之處)
我的簡單理解是這樣,這個父類引用,就是指的是一個父類對象,沒有說指向子類對象。
只不過他有點特殊,如果有和子類共有的方法,調用的就是子類的方法。(當然這不嚴謹)
僅此而已,其他沒有什麼特殊,還是照常一樣,比如調用對象的sex,此時還是父類的。