1. 不能創建抽象類的實例。
2. 抽象類主要是用來作為基類,但是抽象類也可以繼承其它普通類或抽象類。
3. 抽象成員中可以包含抽象成員和普通帶實現的成員。
4. 任何派生自抽象類的類必須使用override關鍵字實現該類所有的抽象成員,除非派生類自己也是抽象類。
5. 抽象成員只能申明在抽象類中。
6. 抽象成員包括:方法、屬性、事件、索引。
namespace abstract_Example
{
class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
m.PropertyValue = 100;
m.Output();
m.DoWork(m.PropertyValue );
Console.ReadKey();
}
public abstract class A
{
public abstract void DoWork(int i); //抽象成員只能聲明在抽象類中
public abstract int PropertyValue
{
get;
set;
}
public void Output() // 抽象類中可以包含普通帶實現的成員
{
Console.WriteLine("I am Abstract Class A");
}
}
public class MyClass:A
{
int MyValue;
public override void DoWork(int i) //派生類必須全部實現基類中所有抽象成員
{
Console.WriteLine("I am Class MyClass. My Value is {0}",i);
}
public override int PropertyValue
{
get { return MyValue; }
set{MyValue = value;}
}
}
}
}