我有一个带有构造函数的Vector类
Vector(int dimension) // creates a vector of size dimension
我有一个扩展Vector类
的类Neuronpublic class Neuron extends Vector {
public Neuron(int dimension, ... other parameters in here ...) {
super(dimension);
// other assignments below here ...
}
}
我希望能够做的是在Neuron类中为Vector指定另一个Vector的引用。
的内容 public Neuron(Vector v, ... other parameters in here ...) {
super = v;
// other assignments below here ...
}
当然,我不能这样做。有一些工作吗?即使我无法在Neuron类的构造函数中执行此操作,也可能没问题。
答案 0 :(得分:11)
您需要在Vector
类中创建copy constructor:
public Vector(Vector toCopy) {
this.dimension = toCopy.dimension;
// ... copy other attributes
}
然后在Neuron
中进行
public Neuron(Vector v, ... other parameters in here ...) {
super(v);
// other assignments below here ...
}
您也可以考虑使用 composition 而不是继承。实际上,这是Effective Java中的一个建议。在这种情况下你会做
class Neuron {
Vector data;
public Neuron(Vector v, ... other parameters in here ...) {
data = v;
// other assignments below here ...
}
}
相关问题: