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。