我有一个基类和两个继承类,我需要使用基类属性 在每个继承类中以不同的方式。实现它的优雅方式是什么?
我有一个基本类,它保持两个不同的平均值。 并且继承类具有相同的方法getAction(),并且它们中的每一个执行不同的计算并且基于它返回动作的计算。 我想为两个继承类都有一个平均值的实例。
答案 0 :(得分:1)
如果可以,请避免继承。下面的解决方案是战略模式的实施,它应该完全符合您的需求。
class Params
{
public int First {get;set;}
public int Second {get;set;}
}
interface IAverageCounter
{
double Calculate(Params parameters);
}
class SomeAverage : IAverageCounter
{
public double Calculate(Params parameters)
{
return (parameters.First + parameters.Second) / 2;
}
}
class OtherAverage : IAverageCounter
{
public double Calculate(Params parameters)
{
return (parameters.Second - parameters.First) / 2
}
}
答案 1 :(得分:0)
我会覆盖你需要的方法:
<强> MSDN 强>
使用override修饰符修改方法,属性,索引器, 或者是一个事件。覆盖方法提供了一个新的实现 成员继承自基类。被方法覆盖的方法 覆盖声明称为重写的基本方法。该 重写的基本方法必须与重写具有相同的签名 方法
public class BaseClass
{
public double x;
// Constructor:
public Square(double x)
{
this.x = x;
}
public virtual double Area()
{
return x*x;
}
}
class InhertingClass1: BaseClass
{
// Constructor:
public Cube(double x): base(x)
{
}
// Calling the Area base method:
public override double Area()
{
return (6*(base.Area()));
}
}
class InhertingClass2: BaseClass
{
// Constructor:
public Cube(double x): base(x)
{
}
// Calling the Area base method:
public override double Area()
{
return (15*(base.Area()));
}
}