------- windows phone 7手機開發、.net培訓、期待與您交流! -------
繼承是物件導向程式設計的主要特徵之一,它可以讓你重用**,可以節省程式設計的時間。繼承就是在類之間建立一種相交關係,使得新定義的派生類的例項可以繼承已有的基類的特徵和能力,而且可以加入新的特性或者是修改已有的特性建立起類的新層次。
c#中,類只能支援單繼承,但可以多繼承介面。除了構造方法和析構方法,派生類隱式地繼承了直接基類的所有成員。
基類的初始化工作由基類的構造方法完成,派生類的初始化工作則有派生類的構造方法完成,但是這樣就產生了派生類構造方法的執行順序問題。
1.如果基類和派生類都沒有定義構造方法,即使用預設的構造方法,又或者如果只有派生類定義構造方法時,只需構造派生類物件即可。物件的基類部分使用預設構造方法來自動建立。
如:public class a
int i=0;
public a()
i= 5;
console.writeline("我是 a 無參的建構函式 ,i = ", + i);
class b : a
class 繼承
static void main(string args)
b b = new b();//只需要構造派生類的物件,基類會自動建立
console.readkey();
結果:i am a
公有預設建構函式 ,
test=5
2.如果基類定義了帶有引數的構造方法,那麼此構造方法必須被執行,且在派生類中實現該構造方法,此時我們可以使用base
關鍵字。
如:class a
public int i;
public a(int i)
this.i = i;
console.writeline("我是
a的帶參建構函式,i = " + this.i);
class b : a
public int i;
public b( string str, int j ) : base( j)
//執行基類的構造方法,注意:傳送給基類的引數名必須和派生類的構造方法裡定義的引數名相同,如此處的
j,在派生類例項化物件時,傳送給
j的值也會傳送給基類的構造方法。
console.writeline("我是
" + str + i);
class program
static void main(string args)
//例項化派生類,
10也會傳送給基類的建構函式
b b = new b("哇哈哈
", 10);
console.readkey();
黑馬程式設計師 Objective C 構造方法
構造方法 用來初始化物件的方法,是物件方法 重寫構造方法的目的 為了讓物件建立出來時成員變數就會有一些固定的值 重寫構造方法的注意點 1.先呼叫父類的構造方法 super init 2.再進行子類內部成員變數的初始化 建立物件的時候,不要再用new person p person new perso...
黑馬程式設計師 繼承
asp.net android io開發s net培訓 期待與您交流!c 的繼承與 c 等語言乙個重要的不同,就是只能從乙個類中繼承,這是開發者在權衡了從多個類c 繼承的優勢與劣勢作出的結果。不過,可以從介面繼承。另外,繼承可傳遞。建構函式和析構函式不能被繼承。c 繼承中的重寫 1 virtual ...
黑馬程式設計師 繼承
乙個類宣告的基類說明中只能有乙個單獨的類,單繼承性 雖然類只能直接繼承乙個基類,但繼承的層次沒有限制 隱藏基類的成員 1.宣告乙個新的相同型別的成員,並使用相同的名稱 不包括返回型別 2.要讓編譯器知道你在故意隱藏繼承的成員,使用 new修飾符 基類訪問 可以使用基類訪問表示式訪問隱藏的基類成員 基...