在超类中使用getClass

  • 本文关键字:getClass 超类 java
  • 更新时间 :
  • 英文 :


我想从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中逐字地实现。这是不可能的。


实际上,该声明在超类中的位置并不重要。无论在继承层次结构的哪个地方尝试,都会遇到同样的问题。(使用实例方法)

最新更新