C 高階之路 8 C 繼承

2022-02-06 10:54:21 字數 2236 閱讀 8887

c#高階之路——8.c# 繼承

基礎:

繼承含義:繼承指允許重用現有類去建立新類的過程。

原則:乙個類派生出來的子類具有這個類的所有非私有的屬性,即繼承的子類擁有父類所有非私有屬性。

特點:c#不支援多重繼承,c#類始終繼承自乙個基類(如果未在宣告中指定乙個基類,則繼承自system.object)

注意:派生類繼承基類時用「:」符號連線,派生類繼承基類的所有非私有成員變數和方法。

using system;

public class person

//這是基類

public class student:person

//這是派生類

高階:

呼叫基類的建構函式

如果對類沒有定義顯式建構函式,則編譯器將提供預設的建構函式,以初始化這些類的成員字段。

如果顯式新增了建構函式,就可以有效控制整個構造過程。

實際開發中建議顯式新增建構函式。

注意:派生類通過使用:base()語法可以顯式呼叫基類的建構函式。在必要的情況下,可以利用它來初始化字段。

using system;

namespace jicheng

//基類

public class person

public string  _name;

public uint  _age;

//基類的建構函式

public person(string name,uint age)

this._name = name;

this._age = age;

//列印輸出

console.writeline(_name);

console.writeline(_age);

//派生類

public class student:person

private uint _id;

//派生類構造函式呼叫基類建構函式用「:base」

public student(string name,uint age uint id):base(name,age)

this._id = id;

//列印輸出

console.writeline(_id);

public class exercise

[stathread]

static void main(string args)

//構造 student

student objstudent=new student(「xyz」,45,001);

方法重寫

關鍵字:override

具有override關鍵字修飾符的方法是對基類中同名方法的新實現。

基類中的同名方法必須宣告為virtual或abstract型別。

給基類中的方法新增virtual關鍵字表示可以在派生類中重寫它的實現。

1、預設的c#方法並非virtual,因此不能重寫。

2、基類方法的可訪問級別並不因重寫它的方法而改變,他們的訪問修飾符相同。

3、new、static和virtual關鍵字不能與override訪問修飾符一同使用

關鍵字:virtual

virtual關鍵字,用於將方法定義為支援多型,用於對乙個類中可修改的方法的宣告,這種方法稱為虛擬方法,子類可以使用override關鍵字自由實現它們各自版本的虛擬方法。

語法:[訪問修飾符] virtual [返回值型別] 方法名稱([引數列表])

//虛擬方法的實現

1、virtual訪問修飾符不能與static和override等訪問修飾符一同使用

2、呼叫虛擬方法,在執行時系統會自動檢查,以確定調調用了哪乙個實現方法。

關鍵字:new

new訪問修飾符用於顯式隱藏繼承自基類的成員。

如果派生類成員與基類成員名稱相同,new會將派生類成員識別為乙個全新成員。

1、在乙個方法中同時使用new和override將會出錯。

2、new訪問修飾符的真正目的是為了隱藏基類方法。

3、如果將乙個方法宣告為new,它實際上並沒有隱藏基類方法,並且編譯器也產生了警告,這時應該刪除new。

參考:

C 學習之路 8 C 程式的多檔案組成

語言 c 編譯環境 visual c 6.0 student.h 檔案1 student.h 類的宣告部分 include using namespace std class student student.cpp 檔案2 student.cpp 類的實現部分 include student.h 包...

(8)C 修飾符型別

c 允許在 char int 和 double 資料型別前放置修飾符。修飾符用於改變基本型別的含義,所以它更能滿足各種情境的需求。下面列出了資料型別修飾符 signed,unsigned,long,short 修飾符 signed unsigned long 和 short 可應用於整型,signe...

8 C 迴圈語句練習2

1.羽毛球拍15元,球3元,水2元,有200元,每一種至少買一件,問有幾種買法?2.洗髮水15元,牙刷5元,香皂2元,有150元,每一種至少買一件,問有幾種買法?3.用100元錢買100隻雞,公雞2元,母雞1元,小雞5角,有幾種買法?4.大馬駝2石糧食,中馬駝1石糧食,兩匹小馬駝1石糧食,有一百匹馬...