[英]Disallow subclasses from overriding Java method
假设我在Java类中有一个方法,并且我不希望该类的任何子类能够覆盖该方法。 我能这样做吗?
您可以将方法声明为final
,如:
public final String getId() {
...
}
有关详细信息,请参阅http://docs.oracle.com/javase/tutorial/java/IandI/final.html
只需将方法设为最终 。
如果您的方法不是构建API的一部分,并且不是由子类直接调用的,那么更喜欢简单地将您的方法private
。
如果您的类层次结构包含在单个包中,请在包范围内创建您的方法(不包括作用域的关键字)。 因此,只有外部世界(包括您自己的其他包)才能访问它,因此无法覆盖它。
如果您的方法实际上不是您的API的一部分,但是必须由子类甚至外部可见,那么首选使其protected
和final
最后,如果你的方法是您的API的一部分,使public
和final
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.