"景先生毕设|www.jxszl.com

C#抽象类抽象方法讲解

2023-09-12 15:40编辑: www.jxszl.com景先生毕设
                           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