Unity3D學習 C#基本知識 抽象類
阿新 • • 發佈:2019-01-24
抽象類
1. 在c#中使用關鍵字abstract來定義的抽象類和抽象方法。
2.不能初始化的類被叫做抽象類,他們只提供部分實現,但是另一個類可以繼承它並且能建立他們的例項。
3.使用abstract在一個宣告中表示該類傾向要作為基類成員被標示成abstract,或被包含進一個抽象類,必須被其派生類實現。
抽象類的基本格式:
public abstract 類名
{
public abstract 返回型別 方法名稱(引數列表);
}
注意:抽象方法宣告時沒有方法體,只有方法名後面跟一個分號;
抽象類的例子:
abstract class Transport
{
public int type;
//建構函式
public Transport(){type=2;}
public Transport(int ty){type=ty;}
//聲明發聲的抽象方法
public abstract void Speak();
}
過載抽象方法(必須使用關鍵字override)
格式:
public override 返回型別 方法名稱(引數類表){方法體}
class Passtrain:Transport //Transport繼承的類Passtrain
{
//過載父類的抽象的發聲方法
public override void Speak()
{
Console.WriteLine ("嘀嘀嘀嘀嘀嘀。。。。");
}
}
抽象類具有以下特徵:
1、抽象類不能被例項化。
2、抽象類可以包含抽象方法和訪問器
3、不能把抽象類用密封(sealed)來修飾,那就意味著類不能被繼承,
這違反抽象類被繼承的原則。
4、抽象類的非抽象子類必須實現其繼承的所有抽象方法和抽象訪問器
5、通過宣告派生類也為抽象,我們可以避免所有或特定的虛方法的實現,這就是抽象類的部分實現。
6、抽象類中可以是抽象方法和費抽象方法。
7、一個方法被宣告為抽象的,那麼這個方法也是一個虛方法,只是它不提供具體的方法實現程式碼。
8、派生類要通過過載為繼承的虛方法提供自己的實現,而抽象方法則不包含具體的實現內容,所以方法宣告數的執行題中只有分號。對抽象方法不能使用static或virtual修飾符。
更多精彩內容請到: