C#抽象类抽象方法讲解
抽象类表示一种抽象的概念,只是希望以它为基类的派生类有共同的函数成员和数据成
员。抽象类使用abstract修饰符,对抽象类的使用有以下几点规定:
1.抽象类只能作为其它类的基类,它不能直接被实例化。
2.抽象类允许包含抽象成员,虽然这不是必须的。抽象成员用abstract修饰符修饰。
3.抽象类不能同时又是密封的。
4.抽象类的基类也可以是抽象类。如果一个非抽象类的基类是抽象类,则该类必须通过覆盖来实现所有继承而来的抽象方法,包括其抽象基类中的抽象方法,如果该抽象基类从其它抽象类派生,还应包括其它抽象类中的所有抽象方法。
代码示例:
abstract class Figure//抽象类定义
{
protected double x = 0, y = 0;
public Figure(double a, double b)
{
x = a;
y = b;
}public abstract void Area();//抽象方法,无实现代码
}
class Square : Figure///类Square定义
{
public Square(double a, double b)
: base(a, b)
{ }
public override void Area()//不能使用new,必须用override
{ Console.WriteLine("矩形面积是:{0}", x * y); }
}
class Circle : Figure///类Square定义
{
public Circle(double a)
: base(a, a)
{ }
public override void Area()
{ Console.WriteLine("园面积是:{0}", 3.14 * x * y); }
}
class Class1
{
static void Main(string[] args)
{
Square s = new Square(20, 30);
Circle c = new Circle(10);
s.Area();
c.Area();
}
}
输出:
矩形面积是:600
园面积是:314
抽象类Figure提供了一个抽象方法Area(),并没有实现它,类Square和Circle从抽象类
Figure中继承方法Area(),分别具体实现计算矩形和园的面积。
http://www.itemperor.com/a/C_/214.html
原文链接:http://www.jxszl.com/biancheng/C/445955.html