類與介面

來源:互聯網
上載者:User

可以指定類是抽象的abstract(不能執行個體化,只能繼承,可以有抽象成員)或密封的sealed(不能繼承)

抽象類別聲明:
public abstract class MyClass{}
密封類聲明:
pulbic sealed class MyClass{}
繼承和介面:(類名後面加冒號,其後是基類名或介面)
public class MyClass:MyBase{} //繼承
public class MyClass:IMyInterface{} //介面
public class MyClass:MyBase,IMyInterface{}  //先指定基類,然後才是介面
注意:
1.C#中,只能有一個基類,如果繼承了一個抽象類別,就必須實現所繼承的所有抽象成員(除非衍生類別也是抽象的

)
2.所有的介面成員都必須在支援該介面的類中實現
3。可以把介面成員實現為抽象類別中的抽象成員

介面:
interface IMyInterface{}
注意:
1.關鍵字abstract和sealed不能在介面中使用
2.介面的繼承也可以用與類繼承的類似方式來指定。主要區別是可以使用多個基底介面
public interface IMyInterface:IMyInterface,IMyBaseInterface2{}
3.介面不是類,所以沒有繼承System.Object

建構函式和解構函式
class MyClass
{
 public MyClass(){}   //預設建構函式
 public MyClass(){int myInt)}  //重載建構函式
 ~MyClass(){}  //解構函式
}
注意:
1.在調用解構函式後,還將隱式地調用基類的解構函式,包括System.Object根類中的Finalize()的調用
2.無論用什麼建構函式執行個體化一個類,總是要先調用System.Object.Object()
3.建構函式初始化器,它把代碼放在方法定義的冒號後面。這樣可以在衍生類別的建構函式定義中指定所使用的

基類的建構函式
public class MyDerivedClass:MyBaseClass
{
    ....
    public MyDerivedClass(int i,int j):base(i)
     {
     }
}
base關鍵字指定.net執行個體化過程使用基類中有指定參數的建構函式
除了base關鍵字外,這裡還可以使用另一個關鍵字this作為建構函式初始化器。這個關鍵字指定在調用指定的

建構函式前,.net執行個體化過程當前類使用非預設的建構函式。

介面和抽象類別
類似:
1.抽象類別和介面都包含可以由衍生類別繼承的成員
2.介面和抽象類別都不能直接執行個體化,但可以聲明它們的變數。如果這樣做,就可以用多態性把繼承這兩種類型

的對象指定給它們的變數。接著通過這些變數來使用這些類型的成員,但不能直接存取派生對象的其他成員

區別:
1.衍生類別只能繼承一個基類,即只能直接繼承一個抽象類別
2.相反,類可以使用任意多個介面
3.抽象類別可以擁有抽象成員(沒有代碼體,且必須在衍生類別中實現,否則衍生類別本身必須也是抽象的)和非抽象

成員(它們擁有代碼體,也可以是虛擬,這樣就可以在衍生類別中重寫)
4.介面成員必須都在使用介面的類上實現---它們沒有代碼體
5.介面成員是公用的(因為它們傾向於在外部使用),但抽象類別的成員可以是私人的(只要它們不是抽象的),受

保護的,內部的或受保護的內部成員(其中受保護的內部成員只能在應用程式的代碼或衍生類別中訪問)
6.介面不能包含欄位,建構函式,解構函式,靜態成員或常量

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.