歡迎來到unity學習、unity培訓、unity企業培訓教育專區,這裏有很多U3D資源、U3D培訓視頻、U3D教程、U3D常見問題、U3D項目源碼,我們致力於打造業內unity3d培訓、學習第一品牌。
今天學習了關於抽象類的使用。
抽象類的基本定義:
使用關鍵字 abstract 來定義抽象類和抽象方法。
不能初始化的類被叫做抽象類,它們只提供部分實現,但是另一個類可以繼承它並且能創建它們的實例。
使用abstract 在一個類聲明中表示該類傾向要作爲其它類的基類成員被標示成abstract,或被包含進一個抽象類,必須被其派生類實現。
抽象類的特徵:
1、抽象類不能被實例化。
2、抽象類可以包含抽象方法和訪問器
3、不能把抽象類用密封(sealed)來修飾,那就意味着類不能被繼承,這違反抽象類被繼承的原則。
4、抽象類的非抽象子類必須實現其繼承的所有抽象方法和抽象訪問器
5、通過聲明派生類也爲抽象,我們可以避免所有或特定的虛方法的實現,這就是抽象類的部分實現。
例:abstract class ShapesClass(定義一個抽象類在類前加abstract這個類就會成爲抽象類)
{
abstract public int Area();
}
class Square : ShapesClass
{
int x, y;
public override int Area()(使用override接受抽象類的變量)
{
return x * y;
}
}
抽象類的部分實現:
一個抽象類可以包含抽象和非抽象方法,當一個類繼承於抽象類,那麼這個派生類必須實現所有的的基類抽象方法,若子類只想實現部分父類的方法,可以通過聲明派生類也爲抽象,來實現。
例:
abstract class MyAbs
{
public abstract void AbMethod1();
public abstract void AbMethod2();
}
abstract class MyClass1 : MyAbs
{
public override void AbMethod1()
{
Console.WriteLine("Abstarct method #1");
}
}
class MyClass : MyClass1
{
public override void AbMethod2()
{
Console.WriteLine("Abstarct method #2");
}
}
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();
mc.AbMethod1();
mc.AbMethod2();
}
}
在抽象類中不能使用sealed,因爲一個密封類不能夠被抽象。
更多精彩請看:http://www.gopedu.com/