java中Square方法的继承

我有一个类矩形布局如下:

package Inheritance;

/**
 *
 * @author Jacob
 */
public class Rectangle {
final private int length;
final private int width;

public Rectangle (int l, int w)
{
    length = l;
    width = w;
}

public int getLength ()
{
    return length;
}

public int getWidth ()
{
    return width;
}

@Override
public String toString ()
{
    return String.format ("Rectangle (%dX%d)", length, width);
}

}

然后我需要按以下方式创建课堂广场:

广场Square:方形扩展Rectangle /没有字段在类中声明Square /它有一个参数化的构造函数,只有一个参数/该参数用于初始化Rectangle的两个字段/它有一个名为getSide的方法来显示边长/重写toString方法,以便它将返回以下形式的字符串:/ Square(side)例如Square(4)

双方的价值将被硬编码。 矩形的宽度为4.为了使矩形的边为4,我创建一个矩形的实例并调用方法getWidth并将其设置为边长。 多数民众赞成我怎么会这样做,但在这种情况下,我只会使用其中一个领域,所以,我的问题是如何初始化这两个领域? 我可以调用矩形,并使长度和宽度相等,还是有其他方式我应该这样做?

这是我的Square类的代码:

public class Square {

    public Square (int side)
    {
        super(side, side);
    }

    public int getSide ()
    {
        return side;
    }

    @Override
    public String toString ()
    {
        return String.format ("Square (%d)", side);
    }
}

对于超级行(side,side),我得到错误构造函数Object在类Object中无法应用于给定的类型。 不需要参数,找到int,int。 对于我的返回语句,我发现它无法找到变量端。


双方的价值将被硬编码。

我假定你的意思是当你创建一个RectangleSquare对象时(例如在main() ),你将硬编码宽度和长度的值。 这些值绝对应该硬编码在RectangleSquare类的任何地方。

矩形的宽度为4.为了使矩形的边为4,我创建一个矩形的实例并调用方法getWidth并将其设置为边长。

一点也不。 相反, Square应该有它自己的构造函数,它调用Rectangle构造函数的widthlength都是相同的值:

public Square(int side) {
    super(side, side); // Set the width and length to the same value.
}
链接地址: http://www.djcxy.com/p/83251.html

上一篇: Inheritance of Square method in java

下一篇: Implement a subclass Square that extends the Rectangle class