问答详情
源自:3-2 Swift协议和构造函数

构造函数的继承问题

如果子类没有实现父类的任何指定构造函数,则自动继承父类的所有指定构造函数。那么既然,子类继承了父类的构造函数,那么当一个类继承了父类,且遵守一个协议,为什么要用required呢?

而下面Parrort没有实现协议的name属性,应该是父类bird里有,就不用写了。

提问者:YumaiCode 2016-08-04 18:17

个回答

  • 梁华建
    2019-01-16 08:45:38

    楼上对 既然你父类遵守了这个协议 那么你的其他子类也应该遵守该协议实现该构造方法  

  • 慕九州6666336
    2016-08-07 11:43:19

    因为你不能保证Parrot的子类没有实现任何指定构造函数,所以它不一定有init(name: String)