关于java:如何从重写的子类方法中调用超类的继承方法?

How to call inherited method of superclass from the overridden subclass method?

本问题已经有最佳答案,请猛点这里访问。

我有一个类形状,它有一个toString()方法。我有另一个类圆,扩展形状。此Circle类重写继承的ToString()方法。我要做的是从圆的toString()方法内部调用superclass-shape的toString()方法。以下是我迄今为止所做的工作。我认为在圆的toString()中调用toString()可能会调用继承的toString(),但这只是进入一个无限循环。

形状类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class shape{
String color;
boolean filled;
shape()
{
    color ="green";
    filled = true;
}
shape(String color, boolean fill)
{
    this.color = color;
    this.filled = fill;
}
public String toString()
{
    String str ="A Shape with color =" + color +" and filled =" + filled +" .";
    return str;
}
}

圆类:

1
2
3
4
5
6
7
8
9
10
11
12
class circle extends shape
{
double radius;
circle()
{
    this.radius = 1.0;
}
public String toString()
{
    String str ="A circle with radius" + radius +" and which is a subclass of" + toString();
    return str;
}

请帮忙!


必须在重写方法内调用super.toString()。


你可以使用super.

1
2
3
4
5
6
// In Circle
public String toString() {
    String shapeString = super.toString();
    // ...
    return /*...*/;
}