抽象类和虚方法

微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members

抽象类和类成员

通过在类定义前面放置关键字 abstract,可以将类声明为抽象类。 例如:

public abstract class A
{
    // Class members here.
}

抽象类不能实例化。 抽象类的用途是提供一个可供多个派生类共享的通用基类定义。 例如,类库可以定义一个抽象类,将其用作多个类库函数的参数,并要求使用该库的程序员通过创建派生类来提供自己的类实现。

抽象类也可以定义抽象方法。 方法是将关键字 abstract 添加到方法的返回类型的前面。 例如:

public abstract class A
{
    public abstract void DoWork(int i);
}

抽象方法没有实现,没有方法体。 抽象类的派生类必须实现所有抽象方法。 当抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法。抽象方法只能在抽象类中定义

虚方法

      虚函数是该方法有方法体,但是子类可以覆盖,也可不覆盖。

       virtual修饰符不能与private、static、abstract、override修饰符同时使用。

       override修饰符不能与new 、static、virtual修饰符同时使用,并且重写方法只能用于重写基类中的虚方法。

 

猜你喜欢

转载自www.cnblogs.com/fuyouchen/p/9363970.html