抽象类和接口的关系之我的图解(转自Jack Fan)
最近,在網絡上隨意翻閱到一堆描述類(或者抽象類)和接口之間關系的文章,說的都很不錯,這篇文章我覺得寫得不錯,大家可以先看看:點擊查看,畢竟我的這篇隨筆是基于這篇文章寫的,呵呵。
那篇文章說的是抽象類,一句話:“抽象類定義了你是什么東東,而接口定義了你有什么功能”。也許初看不出來什么端倪,下面看一下我的圖解吧。
這是一個以Train(火車)為抽象類(因為“火車”沒有一般的,必須給予一定的定義)的基類圖,下面三個派生類PassengerTrain(客運火車),FreightTrain(貨運火車),他們擁有Train的核心定義(如車輪規格、引擎規格等)。
下面,我們來看看,我們用同樣的方法,定義一個抽象類Car,又有三個具體的派生類繼承了它的核心定義:
現在,我們要為這些交通工具(暫時用這個詞來總稱它們吧)添加一些基本功能,我們就加入了兩個接口來實現特定的功能,IPassengerCarrier(載客接口)和IHeavyLoadCarrier(載重接口),新的關系圖如下:
可以看到,Car的派生類都有一個IPassengerCarrier接口,因為它們都能執行載客的功能,Train的派生類中,正常來說,只有載客火車能擁有載客的功能,自然地它就擁有了IPassengerCarrier接口;再來看載重接口(IHeavyLoadCarrier),正常來說,suv和皮卡(pickup)都有載重(貨)的功能,和載貨火車一樣,它們三個都繼承了IHeavyLoadCarrier接口。
上面就是我個人對這兩個概念(抽象類和接口)的理解,有很多地方可能會有錯誤,望大家諒解,呵呵。
轉載于:https://www.cnblogs.com/tangjian/archive/2009/01/05/1369455.html
總結
以上是生活随笔為你收集整理的抽象类和接口的关系之我的图解(转自Jack Fan)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于业务用例抽象问题对网友的回复
- 下一篇: 资源引用地址