我定义了一个名为“Entity”的类,其中包含一个名为“pos”的 Point2D 对象。该类是一个超类,并且没有指定“pos”应该是 Point2D.Float 还是 Point2D.Double,这由继承者决定。问题是我不知道如何重写这个对象以使其成为 Point2D.Float (例如)而不出现错误。
import java.awt.geom.Point2D;
public class Entity {
Point2D pos;
public Entity(Point2D pos) {
this.pos = pos;
//...
}
//...
}
import java.awt.geom.Point2D;
public class Enemy {
// Somehow overrite "pos" so it must be Point2D.Float within this subclass
public Enemy(Point2D.Float pos) {
this.pos = pos;
//...
}
//...
}
我尝试在声明
@Override
之前简单地插入 Point2D.Float pos;
注释,但我正在使用的虚拟环境表明这是对 @Override
的非法使用。
我不确定自己应该做什么,并且在 Stack Overflow 上没有找到任何答案。
提前谢谢您。
这对你有用吗?你可以在实例化类时选择你想要的。
Entity<Point2D.Float> flt = new Entity<>(new Point2D.Float(2f,3f));
System.out.println(flt);
class Entity<T> {
T pos;
public Entity() {
}
public Entity(T pos) {
this.pos = pos;
}
public String toString() {
return pos+"";
}
}
打印
Point2D.Float[2.0, 3.0]