当前位置:  开发笔记 > 编程语言 > 正文

不使用final就停止继承

如何解决《不使用final就停止继承》经验,为你挑选了4个好方法。

除了将其声明为final或者将其构造函数声明为private之外,还有其他方法可以阻止类的继承吗?



1> vava..:

一条评论

//Do not inherit please



2> Peter Štibra..:

还有两个选择:

使每个方法最终,所以人们不能覆盖它们.您可以避免以这种方式从子类中意外调用方法.但这并不会阻止子类化.

把检查放入类的构造函数中:

if (this.getClass() != MyClass.class) {
    throw new RuntimeException("Subclasses not allowed");
}

然后没人能够实例化你的类的子类.

(不是我建议使用这些技术,它只是出现在我的脑海里.我将使用final类和/或私有构造函数)



3> NotMe..:

最终创建是为了解决这个问题.



4> Landon Kuhn..:

使用final

使用私有构造函数

使用评论:

// do not inherit

使用javadoc评论

使每个方法都是最终的,因此人们无法覆盖它们

在类构造函数中使用运行时检查:

if (this.getClass() != MyClass.class) {
    throw new RuntimeException("Subclasses not allowed");
}

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有