C#中虚方法和抽象类的对比

C#中虚方法和抽象类的对比

虚方法和抽象类的区别主要在于前者父类可以写方法而后者不可以写方法。具体代码解释如下

虚方法中父类和子类的写法

/*虚方法父类*/
class 父类名
{
    public virtual void 方法名()
    {
        Console.WriteLine("方法体");
    }
}

/*虚方法子类*/
class 子类:父类名
{
    public override void 方法名()
    {
        base.方法名();
        Console.WriteLine("子类");
    }
}

抽象类中父类和子类的写法

/*抽象类父类*/
abstract class 父类名
{
    public virtual void 方法名();
    //注:不可以有方法体
}

/*抽象类子类*/
class 子类:父类名
{
    public override void 方法名()
    {
        Console.WriteLine("子类实现抽象方法");
    }
}
从以上代码我们可以看出,虚方法用于父类中可以写方法体,而子类中也可以写。但对于在父类中不知道怎么写方法体的情况,就适用抽象类。将方法体的实现交给子类。

你可能感兴趣的:(c#学习笔记)