java 抽象类和接口的区别

   比如我要定义个厕所,厕所能提供一个receiveShit的功能,我还希望厕所能洗澡,厕所还要有灯。                    

 

就可以这么解释                                        

厕所是个抽象类,有个抽象方法receiveShit,有自己的属性灯泡(gets & sets...)然后有抽象方法 洗澡。

问题出现了,厕所是拉屎的,可以由子类实现站着拉还是蹲着拉。洗澡也分成站着洗和泡着洗,这时候问题出现了,洗澡和拉屎耦合到一起了。

所以我们把洗澡抽出来做成一个接口。

然后就看我们的需求了:

A:我们希望所有的厕所都能洗澡:  抽象类厕所继承接口洗澡

B:厕所能不能洗澡得看具体是啥厕所:

                  1.子抽象类能洗澡的厕所继承抽象类厕所继承接口洗澡

                  2.子抽象类不能洗澡的厕所继承抽象类厕所

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