繼承
一.繼承的使用條件:
當你在設計類時,發現有重復字段
具有相同特征不同行為的可以抽取出來,單獨稱為一個類,這個類供派生類使用
簡稱:基類
二.在程序中使用關鍵符號:
1. 表示繼承
格式: ? ? (: 類)
這個類指繼承的類
2.繼承關系中的特點:
? ? ? ? ? ? ?子類可以繼承父類中的共有字段
? ? ? ? ? ? ?子類可以繼承父類中的共開屬性
? ? ? ? ? ? ?子類可以繼承父類中的公開方法
? ? ? ? ? ? ?父類不能擁有子類的字段/方法/屬性/索引器
? ? ? ? ? ? ?在c#中不支持多重繼承,一個類只能繼承一個類,如果你想支持多繼承,請使用 ? Iterface
三.繼承關系中的構造函數(重點)
1.在繼承關系中,首先會調用父類的構造函數,然后再調用子類的構造函數
2.在繼承關系中,子類初始化對象的時候,先調用父類的構造函數,然后再看子類構造函數有沒有顯示,通知編譯器指定調用父類的哪個構造函數,如果沒有,那么默認去調用父類無參數的構造函數
此時如果父類重寫了帶有參數的構造函數,程序編譯不通過,那么解決辦法就是給父類添加無參數的構造函數,或者在子類構造函數中聲明指定調用父類哪個構造函數
this 表示當前類實例
base基類(表示父類對象)
protected:受保護的,只有基類以及派生類可以訪問(派生類內部都可以訪問)
如果子類中存在與父類一樣名稱的方法,此時如果想完全覆蓋父類方法的同時,要告知編譯器
該方法是子類覆蓋的方法,使用new關鍵字