是否有一种标准方法可以在Swift中制作“纯虚函数”,即。一个 必须 由每个子类中被覆盖,并且,如果不是的话,将导致编译时错误?
您有两种选择:
将超类定义为协议而不是类
Pro :编译时检查每个“子类”(不是实际的子类)是否实现了所需的方法
缺点 :“超类”(协议)无法实现方法或属性
例:
class SuperClass { func someFunc() { fatalError("Must Override") } } class Subclass : SuperClass { override func someFunc() { } }
Pro :可以在超类中实现方法和属性
缺点 :不检查编译时间