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。 对于我的返回语句,我发现它无法找到变量端。
双方的价值将被硬编码。
我假定你的意思是当你创建一个Rectangle
和Square
对象时(例如在main()
),你将硬编码宽度和长度的值。 这些值绝对不应该硬编码在Rectangle
和Square
类的任何地方。
矩形的宽度为4.为了使矩形的边为4,我创建一个矩形的实例并调用方法getWidth并将其设置为边长。
一点也不。 相反, Square
应该有它自己的构造函数,它调用Rectangle
构造函数的width
和length
都是相同的值:
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