我有這樣的代碼:抽象方法/請避免鑄造
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