java 抽象類和接口的區別

   比如我要定義個廁所,廁所能提供一個receiveShit的功能,我還希望廁所能洗澡,廁所還要有燈。                    

 

就可以這麼解釋                                        

廁所是個抽象類,有個抽象方法receiveShit,有自己的屬性燈泡(gets & sets...)然後有抽象方法 洗澡。

問題出現了,廁所是拉屎的,可以由子類實現站着拉還是蹲着拉。洗澡也分成站着洗和泡着洗,這時候問題出現了,洗澡和拉屎耦合到一起了。

所以我們把洗澡抽出來做成一個接口。

然後就看我們的需求了:

A:我們希望所有的廁所都能洗澡:  抽象類廁所繼承接口洗澡

B:廁所能不能洗澡得看具體是啥廁所:

                  1.子抽象類能洗澡的廁所繼承抽象類廁所繼承接口洗澡

                  2.子抽象類不能洗澡的廁所繼承抽象類廁所

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章