c# – 派生类中的别名属性名称?

我通过继承自己的Point类来编写自己的Vector类.我在Point类中调用x,y和z的字段我想在Vector类中调用i,j和k.相同的私有双变量返回属性.

我使用的方法是在Vector类中将x,y和z声明为私有,并将i,j和k设置为public,但使用相同的get / setter,如下所示:

这项工作会好吗,还是让我心烦意乱?

public class ptsVector : ptsPoint
{
   private double x { get { return x_; } set { x_ = value; } }
   private double y { get { return y_; } set { y_ = value; } }
   private double z { get { return z_; } set { z_ = value; } }

   public double i { get { return x_; } set { x_ = value; } }
   public double j { get { return y_; } set { y_ = value; } }
   public double k { get { return z_; } set { z_ = value; } }
   // methods elided for clarity
}

请注意,Point类具有x_,y_和z_作为受保护的双精度数.

解决方法:

我想我们需要更多关于你如何使用它们的信息.如果你不需要将ptsVector称为ptsPoint,那么我就会放弃继承.你能说矢量是一个点吗?如果没有,那么多态在这里是不合适的.

除了这个特殊的例子,无论如何,我认为别名属性是一个坏主意.它增加了许多复杂性,没有真正的好处.

上一篇:java – 对超类对象的子类引用


下一篇:c# – 显式运算符重载继承