我有这样的代码:抽象方法/请避免铸造
public interface Position {
public int getX();
public int setX(int x);
public int getY();
public int setY(int y);
}
public StandardPosition implements Position {
// STANDARD implementation of Position here
}
public abstract class Mover {
public abstract Position move (Position originalPosition);
}
A“移动器”的东西,一些移动从初始位置到最终位置。
现在,这里是有趣的部分...一些搬运工更复杂,并与位置对象的工作有点复杂。
public class ComplicatedPosition extends StandardPosition {
// ADDS Y DIMENSION
private int y;
public int getY() { return(y); }
public void setY(int y) { this.y = y ; }
}
public class MoreComplicatedMover extends Mover {
@Override
public void Position move(Position initialPosition) {
ComplicatedPosition q = (ComplicatedPosition) initialPosition;
// Do a transformation and
// return a new position
return(q);
}
}
在这里,我的问题是...有没有办法避免的位置ComplicatedPosition铸造......(我们是从界面到类转换..似乎有点别扭)... 另一种方式问这个问题是:还有其他方式来设置这个代码吗? 干杯!
您需要澄清一些您的代码示例。 Position.setX()和Position.setY()应该没有参数吗? ComplicatedPosition是类还是接口?只有接口可以扩展其他接口,但接口无法实现,如示例中所示。 – Dev
谢谢@Dev我只是做了编辑;-) – MadSeb