我通过继承自己的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,那么我就会放弃继承.你能说矢量是一个点吗?如果没有,那么多态在这里是不合适的.
除了这个特殊的例子,无论如何,我认为别名属性是一个坏主意.它增加了许多复杂性,没有真正的好处.