У меня есть класс Rectangle выложенный как это:Наследование метода Square в Java
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/ В классе нет полей. У него есть параметризованный конструктор с (только) одним параметром/ Параметр используется для инициализации обоих полей Rectangle/ . Он имеет метод getSide, чтобы выставить боковую длину квадрата/ Переопределите метод toString, чтобы он возвращал строку следующего вида:/Square (side), например. Площадь (4)
Значения сторон будут жестко закодированы. Прямоугольник будет иметь ширину 4. Чтобы получить сторону квадрата 4, я создаю экземпляр прямоугольника и вызываю метод getWidth и устанавливаю его как длину стороны. То, как я мог бы это сделать, но в этом случае я бы использовал только одно из полей, поэтому, мой вопрос: как инициализировать оба поля? Могу ли я вызвать Rectangle и сделать длину и ширину равными или есть какой-то другой способ сделать это?
Вот код для моего класса 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);
}
}
Для линии супер (сторона, сторона) Я получаю конструктор ошибка Объект в классе Object не может быть применен к данным видам. Не требуется никаких аргументов, найдено int, int. Для моих операторов возврата я понимаю, что он не может найти переменную сторону.
запах, как работа на дому. это? –
В 'Квадрате', вы должны брать один параметр, размер которого вам просто нужно будет вызвать' super (size, size) 'в конструкторе' Square' ... – MadProgrammer
Вы, вероятно, должны начать с следующего книги или учебника. Подобно разделу Java Tutorial [Наследование] (http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html) – vanza