本帖最后由 如远行客 于 2013-12-17 22:55 编辑
抽象类和抽象方法 在声明中使用abstract关键字修饰的类称为抽象类,抽象类具有以下特点: ◆ 抽象类不能实例化。 ◆ 抽象类可以包含抽象方法和抽象访问器。 ◆ 抽象类中可以存在非抽象成员
◆ 从抽象类派生的类,如果是抽象类,可以不实现抽象类中的成员,但是继承到最终的子类时一定要全部实现基类中的抽象成员;如果派生类不是抽象类,则必须实现基类中全部的抽象成员。
◆ 抽象类不能与sealed关键字一起使用,因为抽象类是必须被继承的,而用sealed关键字修饰表示该类不能被继承。 抽象类中可以包含抽象方法。虚方法是需要有实现体的方法,在现实开发过程中,如果不需要实现实现,或者知道怎么去实现这个方法,那么就可以将这个方法定义为抽象方法。 抽象方法具有如下特性: ◆ 抽象方法是隐式的虚方法。 ◆ 抽象方法只允许在抽象类中声明。 ◆ 抽象类不允许有实现体,在声明抽象方法时,只写出方法名后加一个分号即可,连后面的{ }都不能有。 ◆ 在实现抽象方法时,需要使用关键字override。 ◆ 在声明抽象方法时不能一起使用static或virtual关键字。 ◆ 抽象方法也不能是私有的,否则无法在子类中实现。 例如: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 抽象类 { class Program { static void Main(string[] args) { B b = newB(5, 7); int sum= b.fun(); Console.WriteLine("运行实现的抽象函数得到结果: {0}",sum); Console.ReadKey(); } } abstract class A //声明抽象类 { public abstract int fun(); //声明抽象方法 } class B : A { int x, y; public B(int x1,int y1) { x=x1; y=y1; } public override int fun() //抽象方法的实现 { return x + y; } } } 程序运行结果如下:
|