java物件導向思維之繼承 組合

2021-09-01 16:49:36 字數 842 閱讀 7996

[size=medium][color=blue] 在物件導向語言裡面最經常就聽到繼承這個感念。也許因為是物件導向的原因吧!因為你最可能從實際生活中找出繼承這個相關的關係。比如你某天從你父親那裡繼承了一大筆錢。高興吧!這裡也出現了繼承。難道這個繼承概念和物件導向的繼承概念一樣嗎?我認為在某種程度上你可以這麼認為。那麼我們來看看這個現實中繼承的含義吧! 你為什麼能夠從你父親那裡繼承一大筆錢呢?你會說因為他是我的父親。沒錯。但是真正的話是因為你和你父親有別人沒有的關係。這種關係是父子關係。正因為這個關係才讓你繼承有意義。現在回到物件導向思維中的[b]繼承[/b]:

它思維是父類中有一些或者全部的資料和行為可以通過繼承關係讓子類擁有。這個方向是單向的。也就是說如果a類是b類的父類的話,那麼a類對應的某些或者全部資料和行為可以再b類中得到使用。(這裡暫時不去詳細考慮訪問許可權)。如果b類繼承a類只是覆蓋a類的方法。那麼就意味著a類和b類是完全相同的型別。這個b類的物件就可以完全替代a類的物件。反之在b類中新增了介面或者叫擴充套件了介面那麼就是不完全替代,因此父類無法訪問新新增的方法。這裡主要乙個轉型的概念。有向上轉型和向下轉型。向上轉型的話可以理解為子類擁有父類的型別。這裡隨便說下如果你初始化乙個子類的時候,其實它會先去將父類初始化,然後在初始化自己。

物件導向思維中的[b]組合[/b]:

組合其實也是一種很有意思的關係。這種關係在有些時候使用繼承還是組合會讓很多程式設計師困惑。因為繼承可謂是物件導向的經典。但是組合則是更靈活。比如一輛車是由發動機,車胎,門等等組成。組合是將多個不同類的物件根據行為進行任意的組合。在這種組合其實也可能包含實現繼承關係而得到的行為。某種程度上組合關係達到的行為包含了繼承達到的行為。因此經常在使用的時候除非繼承關係很明顯否則還是使用組合比較好。

[/color][/size]

java 物件導向之繼承extends

繼承官方定義 繼承 英語 inheritance 是物件導向軟體技術當中的乙個概念。如果乙個類別a 繼承自 另乙個類別b,就把這個a稱為 b的子類別 而把b稱為 a的父類別 也可以稱 b是a的超類 繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的 在令子類別繼承父類別的同時,可以...

Python 物件導向 繼承 組合

1.組合將自定義類的物件作為類的屬性class teacher def init self,name self.name name class student def init self,name,teacher self.name name self.teacher teacher tec tea...

Java物件導向 繼承

1,mvc框架思想 m model 存放具體物件的類,比如玩家,機械人,地鼠 v view 用於介面視窗顯示的類 c control 控制邏輯的類2,繼承 子類繼承父類,extends public class teacher extends human 子類可以有自己的屬性與方法,不能繼承父類的構...