“固执派”final
一开始我以为final只是个简单的修饰符,没想到它在不同场景下的“固执”还不一样。修饰变量时,它就像给变量上了把锁,基本类型变量的值再也改不了,引用类型变量则永远不能指向新对象;修饰方法时更绝,直接禁止子类重写,相当于给方法划定了“不可修改区”;最严格的是修饰类,被它修饰的类就成了“最终形态”,连子类都不能有,比如常用的String类就是final修饰的,难怪它能保证字符串的不可变性。
比如定义final int num = 10后,再想给num赋值就会报错,这种“刚性约束”反而让代码更安全。后来做练习时,用final修饰工具类的方法,还避免了子类误改逻辑的问题。原来“固执”也能成为优点,final用好了,能让代码更稳定、更易维护