1. 程式人生 > >抽象類與介面的區別

抽象類與介面的區別

最近 不忙,學習一下基礎薄弱的地方,寫下部落格,鞏固一下學習內容,同時希望可以幫助他人。

關於抽象類和介面  在我們日常專案中 ,經常會用到抽象類和介面。此處簡略的以舉例的方式 來對二者進行區分:

比如說 ,我們 需要寫幾個類,分別為cat ,dog ,bird 三個類,這三個類中有一些共同的點 ,比如說,都可以eat ,都是animal

但是每個類 又各自有自己的特點,cat 可以抓老鼠,dog 可以看家,bird 可以飛   等;

鑑於這種情況:

我們可以建立一個抽象類 ,animal ,作為一個父類  ,將三個類都需要實現的 必須實現的 可以寫成 抽象方法 ,在子類中繼承animal 類,必須實現 這幾個方法 ,否則就會報錯

當然 也不是抽象類中所有的方法都是抽象方法 ,可以寫成不是抽象方法 ,自由的選擇 重寫哪些方法 。

針對於 ,每個類的各自特點的實現,就可以在 繼承抽象類之後,實現相應的介面 :

以 cat 為例子 ,我們可以建立一個catch的介面 ,當然這裡是為了方便寫 ,名字可以自己隨便取 ,在介面內寫一個抽象方法 ,

實現這個介面的 類 ,就必須實現 接口裡面的所有方法 ,

這裡就要提一下 ,介面和抽象類 的區別 ,抽象類中 不一定都是抽象方法,但是 介面中的 方法都是抽象方法 ,

大家只要 記住 ,只要實現了 這個介面 ,就需要實現接口裡面的所有方法 ,否則 也會 報錯。

另外 還有一點兒 ,在Java中是單繼承  多實現,即 一個類 只可以有一個父類 ,但是可以同時實現多個介面 ,

比較常見的 ,我們一般在開發中 ,點選事件 是非常常用的 ,我們就可以在實現 Java類中 ,實現 onclick介面 ,也可以根據需要實現其他的介面

,比如說列表中的item的點選事件 等介面

最後 ,總結一下

一般在抽取公用的一些東西的時候 ,我們可以考慮使用抽象類 ,

但是在每個類 具體的一些 額外需要實現的 業務 ,我們 可以有限考慮 介面

本文 參考連結如下:

https://www.jianshu.com/p/d8f06ad45135