繼承和多态是面向對象開發語言中非常重要的一個環節,若使用得當,整個程式的架構将變得非常有彈性,同時可以減少代碼的 備援性。
繼承的概念
在已經存在的類的基礎上進行擴充和改造,形成一個新的類。滿足“is a”的關系就是繼承
eg:
父類 :Animals。有name 和age 屬性,提供set和get方法。
子類:Bird 。Bird中增加了color屬性,提供set和get方法。
兩者都是繼承于Animals。

Bird類
Text類和結果
Bird繼承了Animals類,并且滿足“is a ”的關系,鳥事動物,這樣的邏輯是對的,并且在Animals的基礎上增加了新的屬于它自己的屬性——color。
Animals提供了構造方法,則在Bird的構造方法中必須顯性的調用父類的構造方法,而且必須在 第一行。
子類若要調用父類的方法,可以有super.方法名調用。
Object類------java中萬物之祖。
java中的每一個類都有一個父類,有的顯性的表示,有的則隐性表示,但都是繼承一Objec,他是所有java類的父類。
多态的概念
多态是一種事務,多種形态。用名字一樣的代碼根據要求的不同,幹不一樣的事情。
分類
1:對象的多态。(父對象引用指向子類執行個體)
2:方法的多态。(分為方法的重載和重寫或者覆寫)
對象的多态。
若在子類中重寫了父類的方法,則通過對象的多态調用的是子類中重寫的方法。
方法的多态
1 : 方法的重載
重載是發生在同一類中,函數的名字相同,但是函數的參數個數,和參數類型,隻要不一樣,就是重載。
函數重寫。
重寫發生在兩個類中,父類的方法,在子類中重新寫。
重寫的函數名字和參數清單完全一樣。
重寫的函數隻能抛出比之前更小的異常。通路權限隻能比之前的更大。
eg:animals 類中寫了eat() 方法,接下來在子類中重寫此方法。
重寫的函數前加@Override 标示。
前面講的對象的多态裡面,父類對象指向子類執行個體,隻能調用父類和子類中相同的方法,子類中新添加的方法并不能調用,若要調用就要有強制類型轉換。
這樣父類對象就可以調用子類的方法了,
難道說所有的類型都可以互相轉換的嗎?
不是,隻有繼承關系的對象之間才可以互相轉換.
instanceof 判斷左邊的元素是不是等号右邊的執行個體.
寫的有點亂,大家多批評改正,感謝。