我有一个带有最终方法的超类
public final void foo(){ ... }
你不能。final
关键字是为了防止这种情况发生。请参阅Wikipedia 上的 Java 中的最终方法。
你不能覆盖final
超级方法。但你可以重载它。
仅当方法具有不应更改的实现并且对对象的一致状态至关重要时,才使方法成为最终方法。
不,你不能这样做。
用标记的超类方法覆盖子类中的方法final
是不可能的。您可以添加具有不同签名的方法
将final
关键字应用于方法的目的是它不允许子类方法覆盖它。
final 的主要目的是防止覆盖。所以,你不能覆盖 final 方法。您仍然可以重载最终方法。
目前尚不清楚为什么您必须使用相同的名称。要么它打算成为一种不同的方法,然后它可以有一个不同的名称而没有问题,或者你正在尝试做某种你声称不做的覆盖。
如果您的子类需要干扰该方法的接口实现,请考虑该接口实现的内部类。
否则,子类中的方法不会覆盖具有相同名称的超类方法,如果: