代码改变世界

swift final

2019-01-14 09:40  法子  阅读(438)  评论(0编辑  收藏  举报

原文:https://www.jianshu.com/p/97225a04a4b4

Swift中,final关键字可以在class、func和var前修饰,表示不允许对其修饰的内容进行继承或者重新操作。

1)类或者方法的功能确实已经完备了
这种通常是一些辅助性质的工具类或者方法,特别那种只包含类方法而没有实例方法的类。比如MD5加密类这种,算法都十分固定,我们基本不会再继承和重写。

2)避免子类继承和修改造成危险
有些方法如果被子类继承重写会造成破坏性的后果,导致无法正常工作,则需要将其标为final加以保护。

3)为了让父类中某些代码一定会执行
父类的方法如果想要其中一些关键代码在继承重写后仍必须执行(比如状态配置、认证等)。