【发布时间】:2013-08-19 16:00:21
【问题描述】:
我有一个来自我在项目中使用的库的接口 Vector,但我无法修改...
interface Vector<T> {
public Vector<T> plus(Vector<T> v);
}
然后我用一个类 FourVector 实现了它,但问题出现在覆盖方法 plus 上。我想要FourVector 只能添加FourVector,而不是所有类型的Vector!我尝试做的是这样的事情(但显然是错误的)
class FourVector<T> implements Vector<T> {
public Vector<T> plus(FourVector<T> v) {
...
}
}
有一些模式或解决方法可以实现这个想法吗?
【问题讨论】:
-
那么 FourVector 是 4 维向量吗?如果是这样,当您向其中添加 2D 向量时,您如何知道要添加到哪些维度?
-
是的,它代表 Minkowski 4 维向量。事实上,我想防止这种类型的覆盖方法不一致......
标签: java superclass overriding