繁体   English   中英

禁止子类覆盖Java方法

[英]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的一部分,但是必须由子类甚至外部可见,那么首选使其protectedfinal

最后,如果你的方法是您的API的一部分,使publicfinal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM