C# abstract 抽象类

C#允许把类和函数声明为 abstract。

抽象类不能实例化,抽象类可以包含普通函数和抽象函数,抽象函数就是只有函数定义没有函数体。

显然抽象函数本身也是虚拟的Virtual(只有函数定义,没有函数体实现)。

类是一个模板,那么抽象类就是一个不完整的模板,我们不能使用不完整的模板去构造对象。

abstract class Bird//一个抽象类 就是一个不完整的模板
{
    private float speed;

    public void Eat()
    {
            
    }

    public abstract void Fly();//所有继承Bird的子类都必须实现Fly方法
}
class Crow:Bird //我们继承了一个抽象类的时候,必须去实现抽象方法
{
    public override void Fly()
    {
        Console.WriteLine("乌鸦在飞行");
    }
}

调用

Crow crow = new Crow();
crow.Fly();

Bird bird = new Crow();//我们可以通过抽象类去声明对象 但是不可以去构造
bird.Fly();

结果

发布了231 篇原创文章 · 获赞 8 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/cuijiahao/article/details/104211924