【问题标题】:how to override a method in java and then call the superclass method如何覆盖java中的方法然后调用超类方法
【发布时间】:2024-01-07 20:55:01
【问题描述】:

我试图在我的 java 子类中覆盖超类中的一个方法,然后从超类调用被覆盖的方法。这是正确的方法吗。我要覆盖的超类中的方法称为 describe()

 public static void describe()
    {
        Item.describe();



    }

【问题讨论】:

  • static 方法不会被继承。
  • @SotiriosDelimanolis 好收获。

标签: java class methods overriding


【解决方案1】:

使用super 关键字。

@Override
public void describe() {
    super.describe();
}

注意虽然不是必需的注释是“正确的”。

正如所指出的,静态方法不会被继承。可以使用反射来模仿静态方法的多态行为,但我不建议初学者这样做。这只是你可以做的事情。您可以在子类中创建相同的静态方法签名,并在超类引用上使用Method.invoke(),在功能上它与覆盖静态方法相同。

【讨论】: