【问题标题】:I need a no-arg constructor in my subclass, but superclass has defined constructor我的子类中需要一个无参数构造函数,但超类定义了构造函数
【发布时间】:2016-01-23 17:33:37
【问题描述】:

我正在处理 Square 超类。它有一个已定义的构造函数,其中 side 采用双精度值。我必须创建一个具有将 side 设置为 10 的无参数构造函数的子类。如果超类没有无参数构造函数,是否有可能这样做?
提前致谢。

public class Square 
{
private double side;

public Square (double s)
{ 
     side = s;
}
}

public class MySquare extends Square
{   
private double area;

 public MySquare(double s){
  super(s);

} }

【问题讨论】:

  • 是的,这是可能的。这是非常的基本任务。你试过什么?
  • 因为这是一项非常基本的任务,所以对这个问题的一个好的回答相当于一个教程。
  • 我已经尝试了很多东西,包括有一个不带参数的构造函数。像 public MySquare(){super();}。我也用 super(10) 试过。还是不行。在其他构造函数中尝试了条件,试错法,但我认为这是没有意义的。

标签: java constructor subclass superclass


【解决方案1】:

您只需向子类添加一个无参数构造函数,并使用“super”方法调用具有正确值的超类构造函数

public class Square {

    private double side;

    public Square(double s) {
        side = s;
    }
}

public class MySquare extends Square {

    private double area;

    public MySquare(double s) {
        super(s);
    }

    public MySquare() {
        super(10);
    }
}

【讨论】:

  • 我觉得自己像个假人...我尝试添加自己的无参数构造函数,在定义中使用 super(),但我没有考虑将 10 放入 ()。非常感谢。真的是想多了。
猜你喜欢
  • 1970-01-01
  • 2013-10-25
  • 2019-12-05
  • 2018-05-13
  • 1970-01-01
  • 2020-04-18
  • 2014-02-17
  • 2020-10-31
相关资源
最近更新 更多