在base中放置派生类的常用方法,其中base不使用它

时间:2017-11-14 11:54:19

标签: c# oop

从OOP的术语到将基类的通用方法放在基类中是正确的,其中base不会(!)使用它。如示例所示:

class Base {
    virtual void CalculateTotal() 
    {
        //calculate without taxes (no need in base)
    }

    void CalculateTaxes()
    {
        //do something
    }
}

class A : Base {
   override void CalculateTotal() {
       //...
       CalculateTaxes();
       //...
   }
}

class B : Base {
   override void CalculateTotal() {
       //...
       CalculateTaxes();
       //...
   }
}

2 个答案:

答案 0 :(得分:0)

我想不是。 我宁愿将CalculateTaxes放在A和B使用的实用程序类中。 Es tax.Calculate()

或类似的东西。

答案 1 :(得分:0)

如果没有用于计算总值的默认功能,并且从Base派生的每个类应该提供它,那么最好使Base类和CalculateTotal方法抽象化。< / p>