【问题标题】:Using getClass inside super class [duplicate]在超类中使用getClass [重复]
【发布时间】:2021-03-05 02:13:02
【问题描述】:

我想从public String getClass() 返回一个字符串值,但我收到一个错误并告诉我将其更改为

public Class<?> getClass()

这是 UML

getClass(): String // return “Animal” as class name

我把它当作

public String getClass() {
     return "Animal";
}

【问题讨论】:

  • 你怎么称呼这段代码?

标签: java


【解决方案1】:

为方法选择一个不同的名称。

如果您使用getClass() 作为方法签名,您将覆盖Object::getClass ... 返回一个Class 对象。

  • 您不想重写那个方法。
  • 即使您愿意,也不能用不兼容的返回类型覆盖它。

您必须忽略/调整您的 UML 对此处方法名称的说明。 (或者修改 UML,如果这是一个选项。)该 UML 不能在 Java 中逐字实现。这是不可能的。


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多