c# - 抽象方法声明 - 虚拟?

标签 c# oop abstract-class

在 MSDN 上,我发现在抽象方法声明中使用“virtual”修饰符是错误的。 我的一位同事应该是非常有经验的开发人员,但他在他的代码中使用了这个:

public abstract class BusinessObject   
{
    public virtual void Render(){}
    public virtual void Update(){}
}

它是否正确?

最佳答案

如果抽象类提供了一个可选点,继承类可以在其中改变行为,这就有意义了。

因此,通过这种方式继承的类将不会被迫实现它,但如果需要的话它们可以实现。

通常这个方法被抽象类调用:

public AddFoo(Foo f)
{
   // ...
   OnAddedFoo(f);
}

这里将 OnAddedFoo 作为 virtual 而不是 abstract 是有意义的。

关于c# - 抽象方法声明 - 虚拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5350451/

相关文章:

c++ - 面向对象的 C++ 抽象架构

java - toString() 定义在抽象类的私有(private)成员上,那么为什么打印子类对象会与抽象类的私有(private)成员一起打印呢?

Java重写抽象方法设计策略

c# - ILookup<TKey, TVal> 与 IGrouping<TKey, TVal>

matlab - Matlab oop 出现意外的初始属性值

php - 从不同的文件夹自动加载类

python - Django 模型抽象基类 - 它们可以跨应用程序扩展吗?

c# - 类型存储在变量中的类型约束

c# - 在 C# 中获取/设置文件所有者

c# - Winform/usercontrols - 属性为空时使用的异常类型