從編碼中,咱們總是在不知不覺的用繼承,明确的調用,或是隐式的調用了java根類object。什麼是繼承?官方上說,繼承是從已有的類中派生出新的
類,新的類能吸收已有類的資料屬性和行為,并能擴充新的能力。對我來說,繼承就像古典音樂,來自音樂,卻可有所不同。這就是說,古典音樂 extends
音樂
音樂類:music.java
上面定義了音樂的一些屬性成員 和 方法
古典音樂 :classicalmusic.java
上面 古典音樂繼承了音樂,通過繼承,classicalmusic類叫做衍生類(derived class)。被繼承的類music類稱為基類(base class)。所描述的關系是“is-a”關系。
使用繼承需要記住的幾點:
繼承可以達到複用代碼的方法。這就像一把雙刃劍,用的好就好,用的不好就不好。在合适的地方用會更好
子類可以通路基類非private的屬性和方法。
古典中尋找真谛,正如java繼承中吹出古典味
在繼承中,this 和 super是常見的關鍵詞,super可以讓我們很友善的調用到基類的方法或者構造器。在古典音樂中,我們加入屬于他自己的播放方法。
最常見到的代碼,就是各個dao層對基類dao層的實作。
對于protected而言,它指明就類使用者而言,他是private,但是對于任何繼承與此類的子類而言或者其他任何位于同一個包的類而言,他卻是可以通路的。在項目中,springmvc controller 的基類中存在對 日志,請求,響應,會話,還有service層的聲明。
protected,就像保護着孩子的音樂細胞一樣。隻能讓美好的,特定的音樂去通路。每個人都有每個人獨特的品味,就像你mp3,或是手機裡的音樂。那個屬于你的去通路你音樂的細胞。
is-a 的關系,表示古典音樂是屬于音樂。它可以在廣義上稱為音樂,自然當一個人不懂古典音樂時,他完全可以把它當作音樂就ok了。把古典音樂當成音樂這就是向上轉型。 其實我們第一個例子就用到了。