物件導向 實現繼承的正確實踐和不當實踐

2021-10-21 21:15:27 字數 474 閱讀 8521

實現繼承也稱子類化、**繼承或類繼承,要求在子類中組合父類的特性,必要時允許新的實現來過載它們。

實現繼承允許共享特性描述、**復用以及多型性。

當使用泛化來建模時,必須清楚其中隱含了哪種繼承。

介面繼承的使用是安全的,因為它只涉及契約部分的繼承即操作型構。

實現繼承涉及**的繼承,即實現部分的繼承。

如果不注意控制和限制,實現繼承將會弊大於利。

繼承的唯一恰當使用就是將繼承作為類的增量式定義。

子類具有比父類更多的特性(屬性和/或方法),子類是父類的一種,這就是擴充套件繼承。

在擴充套件繼承中,特性的過載要謹慎使用,應該只允許使特性更特殊化(如限制值的範圍或使操作的實現更高效),而不改變特性的含義。如果過載改變了特性的含義,則子類物件就不能再替換父類物件了。

物件導向的封裝和繼承

封裝是物件導向程式設計的一大特徵,所謂的封裝通俗來說就是把不想被別人看到的東西隱藏起來,封裝的原則要求不能直接訪問類中的資料成員,封裝具有以下特徵 在類的定義中設定訪問物件屬性以及方法 的許可權,限制本類物件及其它類的物件的使用範圍 提供乙個介面來描述其他物件的使用方法 其他物件不能直接修改本物件所...

Go 實現物件導向中的繼承和覆蓋方法

go中的繼承是使用結構體巢狀實現的,可以繼承父類的方法 覆蓋和其他物件導向的語言是一樣的,函式名,引數,返回型別一致,就可以覆蓋父類的方法 package main import log type people struct 定義乙個型別 func p people preping func p p...

物件導向程式設計中的多型和繼承

最近在學習c c 中很多程式設計思想其實和c 很相似,都是物件導向的程式設計。但是在c 的學習中,其實我就一直不是很理解繼承和多型。繼承類之間就反映了這樣的關係 當乙個類需要用到另外乙個類的大部分方法和屬性,但又有自己特有的方法和屬性時,就可以使用繼承這一特性。繼承是從已知的類派生成新類的一種方式,...