Java-在构造函数中将对象作为参数传递。。。来自超类

Java-在构造函数中将对象作为参数传递。。。来自超类,java,inheritance,constructor,subclass,superclass,Java,Inheritance,Constructor,Subclass,Superclass,我有这些类:一个称为“Shape”的抽象类,一个扩展Shape的类点,一个扩展点的类圆 我不能改变这种关系。 我需要做的是在圆中创建一个构造函数,它接收一个对象点和一个double作为参数。我已经创建了一个对象点,称为点 我已经试过了: public Circle (Point objPunto, double valorRadio){ Pointp = new Point(objPunto.getX(), objPunto.getY()); setRadio(valorRadio

我有这些类:一个称为“Shape”的抽象类,一个扩展Shape的类点,一个扩展点的类圆

我不能改变这种关系。 我需要做的是在圆中创建一个构造函数,它接收一个对象点和一个double作为参数。我已经创建了一个对象点,称为点 我已经试过了:

public Circle (Point objPunto, double valorRadio){   
  Pointp = new Point(objPunto.getX(), objPunto.getY());
  setRadio(valorRadio);}

但它似乎不起作用。它告诉我:
隐式超级构造函数Punto()未定义。必须显式调用另一个构造函数

我还尝试了一些使用Super的奇怪的东西,但那也不起作用。我开始认为这是可以做到的,如果是的话。。。有人知道为什么吗

谢谢

点代码

    public class Point extends Shape {

   private int x;  
   private int y;  

   public Point( int valorX, int valorY ){
      x = valorX;  
      y = valorY;  
   } 

   public void setX( int valorX ){
      x = valorX;  
   } 

   public int getX(){
      return x;
   } 

   public void setY( int valorY ){
      y = valorY;  
   } 

   public int getY(){
      return y;
   } 

   public String getName(){
      return "Punto";
   } 

   public String describe(){
      return "[" + obtenerX() + ", " + obtenerY() + "]";
   } 
} 

如果您的类
Circle
扩展了
Point
,则它可以访问其成员。 无需创建
新点()


您的圈子正在尝试调用
super()作为第一步,但是
没有默认的无参数构造函数。您必须调用超级方法,该方法将参数作为圆构造函数的第一行


尝试
super(objpto.getX(),objpto.getY())
作为循环构造函数中的第一个调用

我认为您可以调用
super()
作为前两个参数,如下所示:

    public Circle (Point objPunto, double valorRadio){   
      super(objPunto.getX(), objPunto.getY());
      setRadio(valorRadio);
    }

super()

public Circle (Point objPunto, double valorRadio) {
    super.(objPunto.getX(), objPunto.getY());
}

但是,请确保您理解何时调用超级类的构造函数。请记住,当您进行扩展时,它仍然会创建超类,这意味着如果有任何信息需要它们自己创建,那么您需要调用super。重要的是要注意,如果您这样做,超级必须是您调用的第一件事。

这是编译器错误吗?编译器会说什么错误?这个错误:隐式超级构造函数Point()未定义。必须显式调用另一个构造函数,并且出现错误。我假设您出于某种原因必须调用该超类。你能把另外两个班的代码贴出来吗。或者至少是构造器点的构造器是什么?这个是来自超类公共循环(Punto objpto,double valorRadio){super(objpto.obtenerX(),objpto.obtenerY();establecerRadio(valorRadio);}@margseo:看起来不错。有什么问题吗?
    public Circle (Point objPunto, double valorRadio){   
      super(objPunto.getX(), objPunto.getY());
      setRadio(valorRadio);
    }
public Circle (Point objPunto, double valorRadio) {
    super.(objPunto.getX(), objPunto.getY());
}