C 基礎與技巧 類與黎克特制替換

2021-08-17 14:36:54 字數 1061 閱讀 9625

public

class person{};

public class student:person{};

person這個類叫父類(基類),student這個類叫子類(派生類)

student繼承了person類

person類派生了student類

子類中的建構函式會自動的呼叫父類中無參的建構函式,所以如果父類中寫了有參的建構函式,必須再單獨寫無參的建構函式。

(隱式呼叫)子類的建構函式會預設呼叫父類的無參建構函式

(顯示呼叫)在子類的建構函式後加」:base(引數,引數,…)

①父類空間,不能轉成子類

②父類物件子類空間,可顯示轉子類

③父類物件子類空間,不能轉其它子類

④子類物件子類空間,可隱式轉父類

ps:我的理解可以這麼表達:父類new父類的空間,父類要轉換成子類,父類沒有子類的內容,而子類繼承了父類的一切內容,子類所需的空間要比父類多,所以父類轉換不了子類,而子類的空間大,子類空間裡包含了父類所需的內容,所以子類可以轉父類,有一些空間是沒有用到。

舉個例子來說:父類有乙個屬性和乙個方法,假如佔兩個空間,子類自己也有乙個屬性和乙個方法,但是子類由於繼承了父類,子類相當於擁有2個屬性和2個方法,所以子類的空間會有4個,父類型別的2個加上自己的2個,所以子類可以轉換成父類,而父類不能轉換成子類。

is 返回布林型別,true可以轉換,false不能轉換

as 直接返回相應型別,如果轉換不了,不報異常,返回的是null

依賴倒轉與黎克特制替換

關於學習的依賴倒轉原則的學習,當時不是很明白,不過在網上學習了一些後多少有些了解了,在生活中我們去乙個飯館點餐的時候都是根據這個飯店的口碑怎麼樣,招牌菜是什麼,但是在 的世界中這個有一些不一樣了,其實依賴倒轉的主要思想是對於 的復用以及減少耦合度。還是以飯店為例子,在飯店中有很多的菜品,有炒菜 冷盤...

開閉原則與黎克特制替換原則

1.開閉原則 是物件導向設計的基本原則之一,是 可復用設計 的基礎,它的主要原則是 對擴充套件開放,對修改關閉 意思就是我們改變乙個軟體時。應該通過擴充套件方式來改變軟體,而不是修改原有的 2.黎克特制替換原則 黎克特制替換原則是說,任何基類可以出現的地方,子類一定可以出現 只有當衍生類可以替換基類...

c 黎克特制轉換與集合

1.黎克特制轉換 1 子類可以賦值個父類 2 如果父類中裝的是子類物件,那麼可以將這個父類強制轉換為子類物件。3 子類物件可以呼叫父類的成員,但父類的物件不能呼叫子類的成員。子類物件可以賦給父類 person p new student 父類中包含子類成員,可以將父類強制轉換成子類。student ...