#java
Вопрос:
Мне было поручено создать класс Square, который расширяет класс Rectangle, который переопределяет методы, чтобы Квадрат сохранял свою «прямоугольность» (все стороны равны). Я завершил методы для добавления(int, int) и добавления(прямоугольник), но борюсь с переопределением метода grow(int, int). Этот метод должен переопределить метод grow(int, int) таким образом, чтобы квадрат вырос по крайней мере на столько же и все еще сохранял свою прямоугольность. Как я могу исправить этот метод, чтобы он переопределял метод классов прямоугольников и работал правильно? Вот мой код:
public class Square extends Rectangle{
private int x;
private int y;
private int s;
public Square(int x, int y, int s) {
super(x,y,s, s);
this.x=x;
this.y=y;
this.s=s;
}
@Override
public void add(int one, int two) {
super.add(one, two);
super.add(this.getX() this.getHeight() , this.getY() this.getWidth() );
}
@Override
public void add(Rectangle rec) {
super.add(rec);
super.add(this.getX() this.getHeight() , this.getY() this.getWidth() );
}
@Override
public void grow(int one, int two) {
super.grow(one,two);
this.add(one,two);
}}
Комментарии:
1. Можете ли вы также опубликовать реализацию прямоугольника?
2. Прямоугольник-это класс прямоугольника Java API :
3. public void grow(int h, int v) Изменяет размер прямоугольника как по горизонтали, так и по вертикали. Этот метод изменяет прямоугольник таким образом, чтобы он был на h единиц больше как с левой, так и с правой стороны, и на v единиц больше как сверху, так и снизу. Новый прямоугольник имеет (x — h, y — v) в качестве верхнего левого угла, ширину (ширина 2h) и высоту (высота 2 в). Если для h и v заданы отрицательные значения, размер прямоугольника соответственно уменьшается».
4. Если для h и v заданы отрицательные значения, размер прямоугольника соответственно уменьшается. Метод grow проверит переполнение и недостаточный поток целых чисел, но не проверяет, увеличиваются ли результирующие значения ширины и высоты от отрицательных до неотрицательных или уменьшаются от неотрицательных до отрицательных. Параметры: h — горизонтальное расширение v — вертикальное расширение