作者在 2008-05-02 14:09:56 发布以下内容
abstract修饰符可以和类,方法,属性,索引器及事件一起使用,在类中声明使用abstract修饰符以指示某个类只能是其他类的基类。标记抽象或包含在抽象类中的成员必须通过从抽象类派生出来的类实现。
抽象类是隐式的虚方法,
只允许在抽象类中使用抽象方法,
因为抽象类不提供实现的实体,所以没有方法体,方法的声明只以一个分号结束,并且在签名后没有( {} ),实现由重写方法提供(继承类中 override修饰)。
抽象类不能实例化,
抽象方法不能是私有的,
不能在抽象方法中使用static和virtual关键字。
不要在抽象类中定义公共的(public)和受保护的构造函数(pretected internal),可见性的构造函数只能用于实例化的类型,而抽象类是不能实例化的。
应在抽象类中使用pretected 或 private 构造函数,在派生类的构造函数中调用基类的构造函数。
using System;
abstract class A
{
protected int x;
public abstract void F();//抽象方法
public abstract int X //抽象属性
{
get ;
set ;
}
}
class B : A
{
public override void F()
{
Console.WriteLine("B.F");
}
public override int X
{
get { return x; }
set { x=value; }
}
}
class test
{
static void Main()
{
B a=new B();
a.F();
a.X=20;
Console.WriteLine(a.X);
}
}