C#面向物件 |多型之里氏轉換原則
阿新 • • 發佈:2018-12-10
面向物件六大原則
- 單一職責原則
- 開閉原則
- 里氏轉換原則
- 依賴倒置原則
- 介面隔離原則
- 迪米特原則
里氏轉換原則
- 里氏轉換
- 子類物件可以直接賦值給父類變數。
//舊版方式. Cat c = new Cat(); c.Cry(); //新版方式. 兩種方式實現效果一樣. CatType ct = new Cat(); ct.Cry();
- 子類物件可以呼叫父類中的成員,但父類物件永遠只能呼叫自己的成員。
- 如果父類物件中裝的是子類物件,可以將這個父類物件強轉為子類物件。
- 子類物件可以直接賦值給父類變數。
- is 和 as
- is 和 as 兩個關鍵字都可以進行型別轉換。
- is:轉換成功,返回 true,失敗返回 false。
- as:轉換成功,返回對應的物件,失敗返回 null。
//1.is 用法.True. CatType ct = new Cat(); bool ly = ct is Cat; Console.WriteLine(ly); //True. Console.ReadKey(); //2.is 用法.False. CatType ct = new Cat(); bool ly = ct is Tiger; Console.WriteLine(ly); //False. Console.ReadKey(); //3.as 用法 CatType ct = new Cat(); if(ct as Cat == null) { Console.WriteLine("轉換失敗"); //轉換成功. }else { Console.WriteLine("轉換成功"); } Console.ReadKey();