通俗講解物件和介面 轉貼

2021-08-31 10:42:53 字數 908 閱讀 2565

最近,還是看到很多人在問物件和介面的問題。

我原本以為,這已經不是個問題了,但是現在看來,它還困擾這很多程式設計師。

其實這個問題很簡單,舉例說明吧:

你是乙個物件,繼承自你的父母,你的gf也是乙個物件,繼承自她的父母,只有你和你的gf發生關係(比如打kiss)的時候,才會出現介面。這是介面的本質,介面就是乙個物件要和另外乙個物件發生關係時的協議。

很多誤導人的書,把介面說成是為了解決多重繼承問題,其實是作者不懂,而且還在誤導別人。從下面的例子可以分析一下

type

tsun = class(tparent, isomeinte***ce)

....

end;

持以上觀點的人,只是從現象上看到,誒,這不是c++的多重繼承嗎?

錯了,上面的寫法,真實的含義,應該是這樣的,tsun,繼承於tparent,說明tsun有tparent大多數特性,還可能有自己的一些新特性,或者tparent沒有完成的虛特性,tsun也完成了。這裡主要解決**復用問題。

但是,從語義上,卻不能說tsun繼承自isomeinte***ce,isomeinte***ce的出現說明這樣乙個問題:tsun,希望它的呼叫者按isomeinte***ce的標準呼叫自己。

一切,都很清楚了,介面,和硬體的介面,協議,是一回事,跟物件導向沒有任何關係,介面的出現,基於這樣乙個事實,物件間會發生關係,而介面具體明確的規定了發生關係的協議。就像一台電腦,本身是乙個物件,但是至少又有電源,開關兩個介面,人機互動又需要鍵盤和顯示器兩個介面。

所以,上面的例子是說,我遵守isomeinte***ce介面,只要按isomeinte***ce介面呼叫我,不會有任何問題。

從物件導向的角度看,public部分的東西,就是介面,只不過,inte***ce的出現,更加強調了這個事實。它是大規模合作開發時的協議,是開發團隊成員間必須遵守的規範。

超詳細通俗講解JS建立物件的幾大模式

實現 利用object建構函式或者物件字面量,缺點 使用同乙個介面建立很多物件,會產生大量重複的 利用object例項 建立object例項然後為它新增屬性方法 var person new object person.name jj person.age 29 person.sayname fun...

物件導向和介面

今天講了抽象和介面的用法 抽象 1,抽象類裡面可以有抽象方法,也可以沒有抽象方法 2,如果乙個類裡面有抽象方法,那麼這個類必然是抽象類 3,抽象類不能例項化,不能建立物件 介面1,屬性是常量,方法都沒有實現 2,不能建立例項 3,內部方法只能用用public修飾 4,介面可以繼承多個介面,類實現介面...

大白話講解AOP的概念和各個術語 通俗

最近疫情還是肆虐,新的一年裡如果快樂太難,那我祝大家平安,要保重身體哦。說白了aop就是把程式中公共的 片段抽取出來,然後動態 出來乙個物件。就像乙個函式一樣,裡面封裝了我們的公共 我們把要呼叫的函式傳進去,它把我們傳進去函式進行增強,然後返回乙個呼叫該函式的物件。舉個例子,我們運算元據庫的語句經常...