3.2定义一个MyRectangle类,它不但具有Rectangle类所有的功能,它还具有如下功能: (1)重写toString方法。假设当前对象的长和高是3和2,那么toString方法返回“width: 3, height:2” (2)重写equals方法。当两个MyRectangle实例的面积相等时,认为两个对象是相等的
时间: 2024-03-23 22:40:36 浏览: 8
好的,这是一个典型的继承和重写类的例子。下面是可能的实现:
```java
public class MyRectangle extends Rectangle {
public MyRectangle(double width, double height) {
super(width, height);
}
@Override
public String toString() {
return "width: " + getWidth() + ", height: " + getHeight();
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof MyRectangle)) {
return false;
}
MyRectangle other = (MyRectangle) o;
return Double.compare(getArea(), other.getArea()) == 0;
}
}
```
这里的MyRectangle类继承了Rectangle类,因此拥有Rectangle类的所有属性和方法。我们重写了toString方法,它返回当前对象的宽度和高度,格式为“width: x, height: y”。我们还重写了equals方法,它比较两个MyRectangle实例的面积是否相等。如果面积相等返回true,否则返回false。
注意,在重写equals方法时,我们首先判断两个对象是否是同一个对象,如果是直接返回true;否则,我们再判断另一个对象是否是MyRectangle类的实例,如果不是则返回false。最后,我们将另一个对象转换为MyRectangle类型,并比较两个矩形的面积是否相等,如果相等则返回true,否则返回false。
希望这个例子能够帮助你理解如何继承和重写类的方法。