C 學習筆記(二) 繼承與多型

2021-09-19 11:33:52 字數 1451 閱讀 9003

【繼承】

定義派生類要在類識別符號後面新增乙個冒號,接著新增基類名稱; 如下

class person  //定義基類person

//c#3.0 可以簡寫

public string gender

private int _age; //不簡寫,新增正值判斷

public int age

set

}public void eat() //共有方法示例

class student:person  //定義子類student,該類繼承自person類

public void study()

}

static void main(string args)

輸出結果:

c#除非明確指定了基類,否則所有類都預設從object派生。

派生類繼承了除構造器和析構器之外的所有基類成員。

派生類不能直接訪問基類的私有成員。

【子類的初始化順序】

1、初始化類的例項字段;

2、呼叫基類的建構函式,如果沒有指明基類,則呼叫system.object的建構函式;注:預設呼叫基類的預設建構函式,如果自定義了建構函式(含參),要新增預設建構函式或子類顯式指明要呼叫基類哪個建構函式。

3、呼叫子類的建構函式。

protected修飾符

c#的單繼承是其與c++的關鍵區別之一。一般的解決方案是c#採用聚合aggregation,乙個類包含另乙個類的例項;

*************************= 繼 承 *************************==

【密封類】用sealed關鍵字定義密封類,密封類不可以被繼承。

sealed 關鍵字: 防止派生類重寫虛成員或防止乙個類被其他類繼承;

*************************=多型性 *************************==

【多型性】:相同簽名的成員在不同的類中有不同的實現,這成為多型性(polymorphism)。

抽象成員是實現多型性的乙個手段,基類制定方法的簽名,而派生類提供具體的實現。

c#支援重寫例項方法和屬性,不支援重寫字段或任何靜態成員。

基類中,將允許重寫的每個成員標記為virtual或abstract。派生類中重寫的標記為override。【virtual和abstract的區別有哪些?】

抽象類作為基類,不能例項化,只能被繼承,修飾符用abstract。抽象類主要特徵是它包含抽象成員。抽象成員是沒有實現的方法或屬性,強制所有派生類提供實現。【抽象成員必須被重寫,因為會自動成為虛成員,但不能用virtual關鍵字顯式宣告】

C 學習筆記 繼承與多型

1 關於繼承 inheritance 的概念 在c 中有 has a 和 is a 的 兩個概念。1.1 has a 即為在乙個類定義中包含另乙個類的物件 class a class b 1.2 is a 即我們說的繼承 如下,b繼承a,a為基類,b為a的派生類,b繼承了a的所有資料成員和成員函式。...

c 學習筆記( )繼承與多型

1.繼承的作用 復用 2.派生類繼承基類的什麼東西 除了基類的構造和析構函式以外的所有成員 3.public 任意位置都可以訪問 protected 本類類中,子類類中訪問 private 本類類中訪問 基類中不同的訪問限定符下的成員以不同的繼承方式在派生類中的訪問限定 public protect...

C 程式設計筆記 二(繼承與多型)

include include using namespace std 定義個test類 class test test成員函式,用來獲取資料 char getid void 定義個father類 class father father類的show 函式 void father show void ...