我想从public String getClass()
返回一个字符串值,但我得到一个错误,并告诉我将其更改为
public Class<?> getClass()
这是UML
getClass(): String // return “Animal” as class name
我把它写成
public String getClass() {
return "Animal";
}
为方法选择一个不同的名称。
如果您使用getClass()
作为方法签名,您将覆盖Object::getClass
…返回一个Class
对象。
- 不要重写方法。
- 即使你想,你也不能用不兼容的返回类型覆盖它。
您必须忽略/缓和UML在这里对方法名的描述。(或者修改UML,如果可以的话。)UML不能在Java中逐字地实现。这是不可能的。
实际上,该声明在超类中的位置并不重要。无论在继承层次结构的哪个地方尝试,都会遇到同样的问题。(使用实例方法)