9.6-OOP语言 对接口和抽象类的理解
??????? 抽象類主要用作對象系列的基類,這些對象共享某些主要特征,例如共同的目的和結構;接口則主要用于類,這些類存在根本性的區別,但仍可以完成某些相同的任務。
??????? 書中舉到的一個例子個人認為非常有助于理解,放在這里分享給大家:
?????? 例如,假定有一個對象系列表示火車,基類Train包含火車的核心定義,例如車輪的規格和引擎的類型(可以是蒸汽發動機,柴油發動機等)。但這個類是抽象的,因為并沒有“一般的”火車。為創建一輛實際的火車,需要給該火車添加特性。為此,派生一些類,例如PassengerTrain,FreightTrain和424DoubleBogey等。
?????? 也可以采用相同的方式來定義汽車對象系列,使用Car抽象基類,其派生類有compact,suv和pickup。car和train甚至可以派生與一個相同的基類Vehicle。
????? 現在,層次結構中的一些類共享相同的特性,這是因為它們的目的是相同的,而不只是因為它們派生于同一個基類。例如。PassengerTrain,Compact,SUV和Pickup都可以運送乘客,所以它們都有IPassengerCarrier接口。FreightTrain和Pickup可以運送重載貨物,所以它們都擁有IHeavyLoadCarrier接口。
PS:可以理解為抽象類是在本質上決定對象的基本屬性(如:小狗小貓都有四條腿,一條尾巴),而接口則是說明不同的對象各自有分別具有什么特殊功能(如小狗喜歡接球,但是小貓喜歡玩線團)。
總結
以上是生活随笔為你收集整理的9.6-OOP语言 对接口和抽象类的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV学习之路之OpenCV安装(
- 下一篇: Python--str与repr以及ev