我正在制作一个程序,其中有一些球在弹跳,但现在我想继承该类并使新的一个不可能设置它的速度
我已经尝试了这个但是没有做任何
public class Ball {
public Ball(double posX, double posY, double rad, Vector vel) {
Pos = new Point(posX, posY);
Rad = rad;
Vel = vel;
}
public double Rad { get; set; }
public Point Pos { get; set; }
public Vector Vel { get; set; }
}
public class StaticBall : Ball {
public StaticBall(double posX, double posY, double rad)
: base(posX, posY, rad, new Vector(0, 0)) {
}
public Vector Vel {
get { return Vel; }
set { Vel = Vel; }
}
}
我应该怎么做?
答案 0 :(得分:2)
我正在制作一个程序,其中有一些球在弹跳,但现在我想继承该类并使新的一个不可能设置它的速度
您的要求违反了Substitution Principle。如果Ball
的速度可以更改,则继承自Ball
的任何类的速度也必须可更改。
解决方案:不是从ConstantSpeedBall
继承Ball
,而是创建新的基类BallBase
并从中继承ConstantSpeedBall
和ChangingVelocityBall
。