final
final关键字可以用在 class ,func和var前面进行修饰,表示不允许对内容进行继承或者重写操作。
1.权限控制
给一段代码加上final 就意味着你告诉编译器 这段代码不会再被修改。
2.类或者方法的功能确实已经完备了
对于一些辅助性质的工具类或者方法,我们可能会考虑加上final。这样的类有一个比较大的特点,是很可能只包含类方法而没有实例方法。
例如:我们常用的MD5或者AES加密解密工具类。这种工具类和方法是经过完备验证和固定的,使用者只需要调用,而不会有集成或者重写的需求。
3.子类集成和修改是一件危险的事
例如:在公司的管理系统中我们对员工按照一定的规则进行编号,这样通过编号我们能迅速找到任一员工。假如我们在子类中重写了这个编号方法,很可能会导致基类中依赖员工编号的方法失效。在这种情况下,将编号方法标记为final以确保稳定。
4.为了父类中某些代码一定会被执行
有时候父类中有一些关键代码是在被继承重写后必须执行的(比如状态配置,认证等),否则将导致运行时候的错误。