抽象類與抽象方法:
先說些概念的東西:
在乙個類前面加上「abstract」關鍵字,此類就成為了抽象類。 對應的,乙個方法類前面加上「abstract」關鍵字,此方法就成為了抽象方法。
abstract class fruit
//抽象類
注意抽象方法不能有實現**,在函式名後直接跟乙個分號。
抽象類專用於派生出子類,子類必須實現抽象類所宣告的抽象方法,否則,子類仍是抽
象類。
好了,說一下我個人的理解吧:抽象類就是定義乙個類(裡面不止是有方法還有屬性,屬性等等講),裡面都是些想要被重寫的方法(屬性),然後方便子類重寫,抽象類的抽象方法就不能寫實行**,子類去寫。也可以理解,抽象類裡的抽象方法(屬性)都很抽象,每個子類的實現**都不一樣,這樣就方便子類去寫,也就不必虛擬和重寫了。
還有就是抽象類裡的所有抽象方法,子類都要用到。
看個列子吧:
namespace
studytemp
public
abstract
void
growwhere();
} class
: fruit
} class
banana
: fruit
} class
program
} }
截圖:
這個列子還想說一些細節方面的:
包含抽象方法的類一定是抽象類,但抽象類中的方法不一定是抽象方法。也就是當乙個類裡有乙個方法是抽象方法,那麼這個類就是抽象類,但是抽象類裡可以有不抽象的方法和屬性。就不如上面的sayhello方法。
在呼叫的時候就應該這樣:抽象類 抽象類變數名 = new 繼承自此抽象類的具體子類名( );
抽象屬性
剛才說了,除了方法可以是抽象的之外,屬性也可以是抽象的。
先給個例子吧,也是水果的:
看到了,我們對屬性也進行了重寫。
C 抽象類 抽象屬性 抽象方法
抽象類往往用來表徵對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。下面我們以水果為例,首先定義抽象類fruit,抽象類中有公共屬性vendor,抽象屬性price和抽象方法growinarea,1 public abstract class fruit...
抽象類 抽象方法
抽象類 1.類名前有abstruct修飾。有構造方法。在建立抽象類的子類的時候,還是會先建立抽象父類的物件的。2.抽象類不能例項化是指不能手動的new。抽象方法 1.抽象方法 沒有方法體且需要用abstruct關鍵字修飾 作用 需要改變的地方都應該是抽象。抽象方法只能存在於抽象類或介面中。2.有抽象...
抽象類,抽象方法
1 抽象類中可以有實現的方法。抽象方法必須在抽象類中。using system using system.collections.generic using system.linq using system.text namespace test 抽象類可以包含抽象屬性 public int age...