本文是學習抽象類的以及抽象類中靜態字段靜態方法的知識
我寫本文前對抽象類的理解
A 是為了繼承的需要或者是為了多態的需要把具有類似行為的一組概念寫成一個抽象類但是抽象類裡面不實現任何行為僅僅是定義了一個抽象行為
B 從多態的角度來講 應該分清楚什麼時候使用抽象類什麼時候使用接口(有時間吧抽象類 虛方法 以及接口 都是怎麼實現多態的進行一下總結)
C 抽象類就是用來被繼承的所以不能是封閉類
D 只有方法 屬性可以定義抽象 其他的字段是不可以這麼定義的
E 抽象的方法和屬性在繼承類裡面實現的時候需要用override來標記的
F 抽象方法和抽象屬性只能定義在抽象類裡面但是非抽象類和非抽象屬性是可以定義在任何類裡面的抽象類和非抽象類都是可以的
學習完畢我的一點裡面
類 可以分為抽象類和非抽象類 不知道這麼分是不是可以
而靜態類和非靜態類是從另外一個角度進行區分的
下邊是我學習抽象類的一點代碼希望對大家有幫助
view plainprint?
using Systemusing SystemDatausing SystemText
namespace myStu { /*抽象類的 學習
*/ class programe { static void Main(string[] arg)
{ try { sonClass obj = new sonClass() objTest() objdothings() } catch (Exception err)
{ ConsoleWriteLine(errMessage)}
abstract class baseClass { //抽象類可以包含非抽象字段和方法
private int i = protected string names //不可以有抽象字段abstract string name //但是可以有抽象屬性 為什麼可以有抽象屬性因為屬性在clr裡面本質就是一個字段加上一個方法
//所以抽象屬性本上上就是一個一個字段加上連個抽象方法public abstract string name { get set } public void Test()
{ ConsoleWriteLine(iToString())} public abstract void dothings() } class sonClassbaseClass { public override string name //實現屬性需要用代碼來實現{ get { return names} set { names = value } public override void dothings() //實現抽象類的方法必須使用override關鍵字{ ConsoleWriteLine(繼承抽象類做一些事情)}
From:http://tw.wingwit.com/Article/program/net/201311/12437.html