Java,用超类中的构造函数扩展类

时间:2018-10-09 14:02:54

标签: java constructor extends

我有一个定义字段“ coordinates”的类,它是一个没有长度的数组,还有一个子类,我需要设置数组的长度才能使用它。所以问题是如何更改坐标长度的数组在子类中。这是代码: 超类:

abstract class Vector implements sample {       

    private int[] coordinates;  

    public Vector (int[] coordinates) {

    }
}

和子类:

class Vector3D extends Vector {

    public Vector3D(int[] coordinates) {
        super(coordinates);

    }
}

2 个答案:

答案 0 :(得分:0)

abstract class Vector implements sample {       
    private int[] coordinates;  
     public Vector (int[] coordinates){
         this.coordinates=coordinates;
     }
}

如果要通过调用新的Vector3D(1,2,3)来初始化坐标,请执行以下操作:

class Vector3D extends Vector {

    public Vector3D(int n1,int n2,int n3) {
       super(new int[]{n1,n2,n3});
   }
}

答案 1 :(得分:0)

您的父类(向量)需要设置私有字段。当前,参数和实例变量无关。

这可以完成工作:

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数组传递给父对象,其大小将与提供给Vector3D类的数组相同。