我有一个带有最终方法的超类
public final void foo(){ ... }
答案 0 :(得分:1)
不,你不能这样做。
使用标记为final
的超类方法覆盖子类中的方法是不可能的
。您可以添加具有不同签名的方法
应用于方法的final
关键字的目的是它不允许子类方法覆盖它。
答案 1 :(得分:1)
你做不到。 final
关键字可以防止这种情况发生。
请参阅final methods in Java on Wikipedia。
答案 2 :(得分:1)
您无法覆盖final
超级方法。但您可以重载它。
如果方法具有不应更改的实现,并且对于对象的一致状态至关重要,则仅使方法成为最终方法。
答案 3 :(得分:1)
最终的主要目的是防止覆盖。所以,你不能覆盖最终方法。 你仍然可以重载最终方法。
答案 4 :(得分:0)
目前尚不清楚为什么必须具有相同的名称。要么它的目的是一个不同的方法,那么它可以有一个不同的名称没有问题,或者你试图做一些你声称不做的重写。
如果您的子类需要一个干扰该方法的接口实现,请考虑该接口实现的内部类。
否则,子类中的方法不会覆盖具有相同名称的超类方法,如果: