C#總結2

第三章ide

對於繼承:繼承是根據父類建立新子類的過程;函數

對於繼承:例:this

Public class Fatherspa

{
     public void say()對象

{繼承

  //dosomething生命週期

編譯器

}it

Public class Son:Fatherio

{

  Public void say()

{

 //dosomething

}

}

這這裏Son就隱藏了Fathersay方法,也就是覆蓋了;

C#裏但願這樣寫

Public class Son:Father

{

  Public new void say()//多加一個new

{

 //dosomething

}

}

這裏講講base關鍵字,上一章講this的時候提過:

Base是對父類的聲明:

在編譯器裏,」base.」後面就出現了父類裏的屬性和方法,而

this.」就出現了本類裏額屬性和方法;就是這個區別;

對於對象的生命週期,課本上的那個例子挺好的:

例:

Public class Grandsire

{

Public Grandsire()

{

 Consoler.WriteLine(「 調用Grandsire構造」);

}

~Grandsire()

{

Consoler.WriteLine(「 調用Grandsire析構」);

 

}

}

Public class Father:Grandsire

{

Public Father()

{

 Consoler.WriteLine(「 調用Father構造」);

}

~Father()

{

Consoler.WriteLine(「 調用Father析構」);

 

}

 

}

Main()

{

 Father f=new Father();

 

}

輸出:

 

       調用Grandsire構造

    調用Father構造

     調用Father析構

     調用Grandsire析構

對於這樣的結果,我就很少說什麼了,看療效吧

虛擬方法和重載方法:

這個考試中記住,在繼承父類虛擬函數是要用關鍵字override來重載

例:

Class Father

{

 Public virtual void say()

{

//dothing

}

}

Class Father

{

 Public override void say()

{

//dothing

}

}

抽象類:

對於抽象類的定義:

Abstract class 

記住幾個要點:

抽象類裏面不必定都是抽象方法;

在抽象類裏定義抽象方法的時候,在子類繼承這個抽象父類時,若是子類也是否是抽象類,必須爲父類的抽象方法提供具體實現方法,要麼是override abstract修飾;

例:

Public abstract class Father

  Abstract void say();

Abstract void do();

Class Son :Father

{

   Public override say()

{

  //dothing

Public override abstract void do();

}

 

抽象類和藉口同樣不能被實例化

 

密封類,關鍵字 sealed

Sealed calss

就是不讓繼承的類

若是給方法定義sealed 方法不容許重載;

相關文章
相關標籤/搜索