如何覆盖java中的方法然后调用超类方法
我试图覆盖我的java子类中的超类中的方法,然后从超类中调用overriden方法。 这是正确的方法吗? 我想要覆盖的超类中的方法叫做describe()
public static void describe() { Item.describe(); }
使用super
关键字。
@Override public void describe() { super.describe(); }
注意注释虽然不是必需的但是“正确”。
正如所指出的,静态方法不会被inheritance。 使用reflection可以使用静态方法模仿多态行为,但我不建议初学者使用它。 这只是你可以做的事情。 您可以在子类中创建相同的静态方法签名,并在超类引用上使用Method.invoke()
,并且在function上它与覆盖静态方法相同。