我对具有协议扩展的漂亮代码的可能性着迷.
但我似乎并未掌握类继承的真正区别.
我知道有不同的方法来建模,比如我可以使用合成而不是类继承.
但后来我知道了类继承的特性,那就是子类可以非常容易地使用超类的实现.通过协议扩展,我也有这个功能,即使对于值类型也是如此.
所以问题是类继承有哪些特性,哪些协议扩展没有;或何时使用类继承而不是协议扩展.
最佳答案 类继承的“好处”是你可以继承存储的属性和初始化器,它们也可以从子类中获得默认实现.
但至少对我来说,这些只是微不足道的好处.
我对具有协议扩展的漂亮代码的可能性着迷.
但我似乎并未掌握类继承的真正区别.
我知道有不同的方法来建模,比如我可以使用合成而不是类继承.
但后来我知道了类继承的特性,那就是子类可以非常容易地使用超类的实现.通过协议扩展,我也有这个功能,即使对于值类型也是如此.
所以问题是类继承有哪些特性,哪些协议扩展没有;或何时使用类继承而不是协议扩展.
最佳答案 类继承的“好处”是你可以继承存储的属性和初始化器,它们也可以从子类中获得默认实现.
但至少对我来说,这些只是微不足道的好处.