C# 繼承 子類(派生類) 父類(基類)
子類(派生類) 父類(基類)
1.子類擁有父類所有的成員.
2.protected 修飾的成員只能在本類和子類中訪問.
3.建立子類物件的時候,在子類物件中會為子類物件的欄位開闢空間 也會為父類物件的所有欄位開闢空間. 只不過父類私有的成員訪問不到而已。
4.子類從父類繼承父類所有的非私有成員.
5.base關鍵字可以呼叫父類的非私有成員.
6.子類的訪問級別不能比父類高.
7.建立子類物件的時候,1.呼叫子類的建構函式 2.呼叫父類的建構函式 3.執行父類的建構函式 4.執行子類的建構函式.
8.子類的建構函式後面預設加了1個 :base() 通過這個呼叫父類的無引數的建構函式.
9.如果父類沒有無引數的建構函式 將會報錯,因為子類的建構函式預設會呼叫父類的無引數的建構函式.
10.使用base關鍵字可以顯示的指定子類建構函式呼叫父類有參的建構函式.
1. 為什麼要呼叫父類的建構函式
父類的建構函式會初始化父類屬性的值.
2. 為什麼優先於本類的建構函式執行.
續:
1. 繼承的好處:方便程式碼管理. 子類可以擁有父類的非私有成員 為了多型.
2. 子類的建構函式.預設會去呼叫父類的無引數的建構函式.
3. 顯示指定子類建構函式呼叫的父類建構函式 base
4. 建立子類物件的記憶體圖.
5. this 可以點出子類的所有成員和父類的非私有成員 base可以點出父類的非私有成員.
6 單根性 傳遞性
相關文章
- 類的繼承_子類繼承父類繼承
- 繼承 基類與派生類繼承
- 類的繼承和派生繼承
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- 子類繼承父類的建構函式(方法)嗎?繼承函式
- [C++]繼承和派生類C++繼承
- 子類繼承父類(父類和子類裡:塊、靜態塊、構造和方法覆寫)之間呼叫順序繼承
- 原型繼承:子類原型繼承
- c# abstract抽象類與繼承類子類的建構函式_baseC#抽象繼承函式
- C++,繼承,基類和派生類指標間賦值等知識C++繼承指標賦值
- c#之基類派生類base_小記C#
- c# 基類派生類成員方法訪問C#
- c#中判斷類是否繼承於泛型基類C#繼承泛型
- c#之基類派生類base_小記(2)C#
- C#中類的繼承C#繼承
- 區分:派生類指定基類建構函式、繼承構造、委託構造函式繼承
- java關於繼承父類,需要實現父類中的構造方法Java繼承構造方法
- day-25-類的繼承順序-父類對子類的約束-多型-佇列和棧繼承多型佇列
- 基類與派生類的轉換
- 類的繼承繼承
- javascript類繼承JavaScript繼承
- JavaScript基礎: 類與繼承JavaScript繼承
- 菱形繼承與虛基類繼承
- 派生類
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 鏈式-父類中返回子類物件物件
- 泛型類派生子類泛型
- C#實驗7 類和繼承C#繼承
- C# OOP:繼承,介面和抽象類C#OOP繼承抽象
- C#類繼承自泛型集合C#繼承泛型
- python3父類需要繼承object嗎?Python繼承Object
- 在 C++ 中子類繼承和呼叫父類的建構函式方法C++繼承函式
- 在C++中子類繼承和呼叫父類的建構函式方法C++繼承函式
- C#虛基類繼承與介面的區別C#繼承
- TypeScript 介面繼承類TypeScript繼承
- C++ | 類繼承C++繼承
- iOS 繼承&類方法iOS繼承
- Java:類與繼承Java繼承