2011-11-27 40 views

回答

5

将所有课程都抽象化或最终化通常是安全的。

这样,很明显是否需要为继承设计一个类。

如果您后来发现由于某种原因,您需要从具体(非抽象)类继承 - 这通常表示整体设计中存在一些不对称性 - 您仍然可以删除最后一个关键字并确保你的班级适合继承。

因此,通过这样做,您可以避免浪费必须设计所有继承类的问题,同时还可以获得可维护的明确意图的代码。

+1

是的,您还允许jvm在与其具体类型一起使用时调用最终类的方法,因此即使我的关于清晰意图的论点从我的个人角度来看更重要 - 您可以获得更好的表现。内联确实是一个强大的工具。获得这种优势的另一个工具是使用最终和/或私有方法,因为它们也保证永远不会被覆盖。因此,请勿在性能严重的内部循环中使用非最终类的非私有非终极方法:-) – yeoman

3

我从来没有见过任何人,包括谷歌,在代码中这样做。我们被告知Dalvik VM本身已经进行了高度优化,从此可以得出结论,宣布您的最终决定不会导致任何显着的性能提升。一个人通常由于性能原因以外的原因而声明类final

相关问题