移除類的冗餘**
1.建立乙個新類(父類)將兩個子類中的公共屬性都提取出來放在公類中。
2.刪除兩個子類中的公共部分,保留他們各自獨有的部分。
3.在c#中,乙個類可以繼承另乙個類。被繼承的類稱為父類或基類,繼承其他類的類叫子類或派生類。繼承是使用已存在的類的定義作為基礎建立新的技術,新類的定義可以增加新的資料或新的功能,也可以用已存在的類的功能。
4.在繼承關係的兩個類中,子類不僅具有自己獨有的成員,還具有父類的成員。
1、base關鍵字,表示父類,可以用於訪問父類的成員。
2、可以用base關鍵字呼叫父類的方法及父類的建構函式。
(只能傳遞引數,無需再次指定引數的資料型別),引數的變數名必須與父類建構函式中的引數名一致
被這個訪問修飾符修飾的成員允許被其他子類訪問,而不允許其他子類訪問。
1、隱式呼叫父類建構函式
建立子類物件時會首先呼叫父類的建構函式,然後才會呼叫子類本身的建構函式。(由於沒有 指明呼叫父類的哪乙個建構函式,所以系統隱式地呼叫了父類的無參建構函式)
2、顯式呼叫父類建構函式
在子類的建構函式後新增「:base(引數列表)」,就可以指定該子類的構造函式呼叫父類的哪乙個建構函式,(實現繼承屬性的初始化)。
1、繼承的傳遞性
繼承需要符合 is a 的關係
2、繼承的單根性
乙個子類不能同時繼承多個父類
用它修飾的類是不能被繼承的,(密封類)string就是密封類。
1、繼承模擬了現實世界的關係
2、繼承實現了**的重用
3、繼承使得程式結構清晰,子類和父類層次結構清晰。
「多種形態」 同一操作作用於不同的物件時,可以有不同的解釋,產生不同的執行結果。
解決繼承帶來的問題
1、使用virtual關鍵字修飾的方法,稱為虛方法。
語法:
訪問修飾符 virtual 返回型別 方法名(
)
2、通過override關鍵字來修飾的方法,稱為方法的重寫,(虛方法可以重寫)
訪問修飾符 override 返回型別 方法名(
)
繼承和多型
物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...
繼承和多型
物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...
繼承和多型
類還有乙個重要的特性就是繼承,什麼是繼承?它又有什麼作用呢?繼承最主要的目的就是為了擴充套件原類的功能,加強或改進原類所沒有定義的屬性及方法。例如我們有狗這個類,可是狗的種類還是有很多,比如說博美狗,聖伯納,柴犬等等,如果只用狗一種類來定義所有種類狗的屬性及方法,那麼用這個類所產生出來的物件一定會有...