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;}
}
}
}
}