在c#中使用關鍵字 abstract 來定義抽象類和抽象方法。
不能初始化的類被叫做抽象類,它們只提供部分實現,但是另乙個類可以繼承它並且能建立它們的例項。
"乙個包含乙個或多個純虛函式的類叫抽象類,抽象類不能被例項化
例如:abstract class shapesclass
abstract public intarea();
class square : shapesclass
int x, y;
public override intarea()
return x * y;
例如,乙個包含非抽象方法的抽象類:
abstract class myabs
public voidnonabmethod()
console.writeline("non-abstract method");
class myclass : myabs
class myclient
public static voidmain()
//myabs mb = newmyabs();
myclass mc = newmyclass();
mc.nonabmethod();
乙個抽象類可以包含抽象和非抽象方法,當乙個類繼承於抽象類,那麼這個派生類必須實現所有的的基類抽象方法。
乙個抽象方法是乙個沒有方法體的方法。
例如:abstract class myabs
public voidnonabmethod()
console.writeline("11111111");
public abstract voidabmethod(); }
class myclass : myabs
public override voidabmethod()
console.writeline("2222222");
class myclient
public static voidmain()
myclass mc = newmyclass();
mc.nonabmethod();
mc.abmethod();
抽象方法有以下特徵:
1.乙個抽象方法可以看作是乙個虛函式。
2.抽象方法的宣告只能在抽象類中。
3.因為抽象方法宣告只提供乙個無實現的方式,沒有方法體
4.方法體的實現被覆寫方法提供,覆寫方法是乙個非抽象類的成員。
5.抽象屬性的行為和抽象方法相像,除了不同的宣告形式。
6.在乙個靜態屬性中使用abstract 是乙個錯誤。
7.乙個抽象屬性能夠通過派生類使用 override實現。
抽象類具有以下特徵:
1.抽象類不能被例項化。
2.抽象類可以包含抽象方法和訪問器
3.不能把抽象類用密封(sealed)來修飾,那就意味著類不能被繼承,這違反抽象類被繼承的原則。
4.乙個派生於乙個抽象類的非抽象類必須包括所有的繼承來的抽象方法和訪問器的實現
5.在方法和屬性中使用abstract 關鍵字意味著包含它們的實現。
抽象類 學習
抽象類 抽象 籠統,模糊,看不懂!不具體。特點 1,方法只有宣告沒有實現時,該方法就是抽象方法,需要被abstract修飾。抽象方法必須定義在抽象類中。該類必須也被abstract修飾。2,抽象類不可以被例項化。為什麼?因為呼叫抽象方法沒意義。3,抽象類必須有其子類覆蓋了所有的抽象方法後,該子類才可...
抽象類學習
普通類是乙個完善的功能類,可以直接產生例項化物件,並且在普通類中可以包含有構造方法 普通方法 static方法 常量和變數等內容。而抽象類是指在普通類的結構裡面增加抽象方法的組成部分。那麼什麼叫抽象方法呢?在所有的普通方法上面都會有乙個 這個表示方法體,有方法體的方法一定可以被物件直接使用。而抽象方...
Java學習 抽象類
當多個類中出現相同功能,但是功能主體不同 這是可以進行向上抽取,這時,只抽取功能定義,而不抽取功能主體 抽象 看不懂 抽象類的特點 1 抽象方法一定在抽象類中。2 抽象方法和抽象類都必須被abstract關鍵字修飾。3 抽象類不可以用new建立物件。以為呼叫抽象方法沒意義。4 抽象類中的方法要被使用...