介面到底有什麼用

2021-04-12 19:23:51 字數 942 閱讀 1290

我們定義乙個介面

public inte***ce ibark

再定義乙個類,繼承於ibark,並且必需實現其中的bark()方法

public class dog:ibark

public void bark()

}然後,宣告dog的乙個例項,並呼叫bark()方法

dog 旺財=new dog();

旺財.bark();

試想一樣,若是想呼叫bark()方法,只需要在dog()中宣告這樣的乙個方法不就行了嗎,幹什麼還要用介面呢.因為介面中並沒有bark()具體實現.真的實現還是要在dog()中.那麼使用介面不是多此一舉嗎?

還有人是這樣說的:從介面的定義方面來說,介面其實就是類和類之間的一種協定,一種約束.還拿上面的例子來說.所有繼承了ibark介面的類中必需實現bark()方法.那麼從使用者(使用類的使用者)的角度來說,如果他知道了某個類是繼承於ibark介面,那麼他就可以放心大膽的呼叫bark()方法,而不用管bark()方法具體是如何實現的.比如,我們另外寫了乙個類.

public class cat:ibark

public void bark()

}當使用者用到cat類或是dog類的時候,知道他們繼承於ibark,那麼不用管類裡的具體實現,而就可以直接呼叫bark()方法,因為這兩個類中肯定有關於bark()方法的具體實現.

如果我們從設計的角度來看.乙個專案中用若干個類需要去編寫,由於這些模擬較複雜,工作量比較大,這樣每個類就需要占用乙個工作人員進行編寫.比如a程式設計師去定dog類,b程式設計師去寫cat類.這兩個類本來沒什麼聯絡的,可是由於使用者需要他們都實現乙個關於"叫"的方法.這就要對他們進行一種約束.讓他們都繼承於ibark介面,目的是方便統一管理.另乙個是方便呼叫.當然了,不使用介面一樣可以達到目的.只不過這樣的話,這種約束就不那麼明顯,如果這樣類還有duck類等等,比較多的時候難免有人會漏掉這樣方法.所以說還是通過介面更可靠一些,約束力更強一些.

學歷到底有什麼用

每年都會有不少想考研又在猶豫的學弟學妹問我,考研有用嗎?我也跟不少高學歷的朋友聊過,這個 學歷 到底有什麼用。乙個有趣的現象是,一般上了研的,都喜歡自嘲說,學歷啊 名校啊什麼的,都是浮雲。或者大呼後悔,說想到又 浪費 了自己幾年的光陰,很是悔不當初。問起當年考研的原因,多半是興趣所致,或是覺得自己的...

hashCode到底有什麼用?

hashcode概念 hashcode是jdk根據物件的位址算出來的乙個int數字,即物件的雜湊碼值,代表了該物件在記憶體中的儲存位置。我們都知道hashcode 方法是頂級類object類的提供的乙個方法,所有的類都可以進行對hashcode方法重寫。我們也知道在比較乙個類是否相同時往往會重寫eq...

讀書到底有什麼用

1 腳步不能丈量的地方,文字可以 眼睛到不了的地方,文字可以。2 我讀書為的就是不遇到我不想遇到的人。3 年輕的時候以為不讀書不足以了解人生,直到後來才發現如果不了解人生,是讀不懂書的。讀書的意義大概就是,用生活所感去讀書,用讀書所得去生活。4 讀書,不是為了拿文憑或發大財,而是為了成為乙個有溫度懂...