java是ActivityThread中使用的最后一个关键字
正如ActivityThread类的源代码所示,它是一个final
类,这个类中的所有方法也是final
方法。作为java中的final
关键字定义,这个类不能被继承,但是为什么安卓开发人员保留这些方法final
也许我没有把问题表达清楚,我在这里解决了
ActivityThread是一个final
类,它不会有任何子类,也不会重写任何方法,但是你知道这个类中的所有方法都是final
,我想知道为什么它们需要这些final
关键字,它们可以毫无影响地删除它们
# 1 楼答案
Java Language Specification表明
final
类的任何方法都不能被重写。因此,关于这些方法的final
声明似乎是多余的。(可能是Android API的测试版遗留下来的,当时ActivityThread可能不是最终类?)另一方面,优化器和模糊器有时可以通过声明
final
的方法做更多的事情。尽管他们应该足够聪明,可以推断最终类不会有任何重写的方法,但给他们额外的提示也无妨