java,在 superclass 中使用构造函数扩展 class
java, extending class with constructor in superclass
我有一个定义字段 "coordinates" 的 class ,它是一个没有长度的数组和一个 subclass ,我需要在其中设置数组的长度以使用 it.So 问题是如何更改 subclass 中坐标数组的长度。这是代码:
超级class:
abstract class Vector implements sample {
private int[] coordinates;
public Vector (int[] coordinates) {
}
}
和子class :
class Vector3D extends Vector {
public Vector3D(int[] coordinates) {
super(coordinates);
}
}
abstract class Vector implements sample {
private int[] coordinates;
public Vector (int[] coordinates){
this.coordinates=coordinates;
}
}
如果要调用new Vector3D(1,2,3)初始化坐标:
class Vector3D extends Vector {
public Vector3D(int n1,int n2,int n3) {
super(new int[]{n1,n2,n3});
}
}
您的parent class (Vector) 需要设置私有字段。目前,参数和实例变量是无关的。
这样就可以了:
public abstract class Vector implements Sample {
private int[] coordinates;
public Vector(int[] coordinates) {
this.coordinates = coordinates;
}
}
public class Vector3D {
public Vector3D(int[] coordinates) {
super(coordinates);
}
}
// usage:
new Vector3D(new int[]{ 1, 2, 3 }); // Vectors coordinate size: 3. Content: 1, 2, 3
这会将 Vector3Ds 数组传递给 parent,其大小与提供给 Vector3D 的数组相同 class。
我有一个定义字段 "coordinates" 的 class ,它是一个没有长度的数组和一个 subclass ,我需要在其中设置数组的长度以使用 it.So 问题是如何更改 subclass 中坐标数组的长度。这是代码: 超级class:
abstract class Vector implements sample {
private int[] coordinates;
public Vector (int[] coordinates) {
}
}
和子class :
class Vector3D extends Vector {
public Vector3D(int[] coordinates) {
super(coordinates);
}
}
abstract class Vector implements sample {
private int[] coordinates;
public Vector (int[] coordinates){
this.coordinates=coordinates;
}
}
如果要调用new Vector3D(1,2,3)初始化坐标:
class Vector3D extends Vector {
public Vector3D(int n1,int n2,int n3) {
super(new int[]{n1,n2,n3});
}
}
您的parent class (Vector) 需要设置私有字段。目前,参数和实例变量是无关的。
这样就可以了:
public abstract class Vector implements Sample {
private int[] coordinates;
public Vector(int[] coordinates) {
this.coordinates = coordinates;
}
}
public class Vector3D {
public Vector3D(int[] coordinates) {
super(coordinates);
}
}
// usage:
new Vector3D(new int[]{ 1, 2, 3 }); // Vectors coordinate size: 3. Content: 1, 2, 3
这会将 Vector3Ds 数组传递给 parent,其大小与提供给 Vector3D 的数组相同 class。