構造函數的繼承問題
如果子類沒有實現父類的任何指定構造函數,則自動繼承父類的所有指定構造函數。那么既然,子類繼承了父類的構造函數,那么當一個類繼承了父類,且遵守一個協議,為什么要用required呢?
而下面Parrort沒有實現協議的name屬性,應該是父類bird里有,就不用寫了。
如果子類沒有實現父類的任何指定構造函數,則自動繼承父類的所有指定構造函數。那么既然,子類繼承了父類的構造函數,那么當一個類繼承了父類,且遵守一個協議,為什么要用required呢?
而下面Parrort沒有實現協議的name屬性,應該是父類bird里有,就不用寫了。
2016-08-04
舉報
2019-01-16
樓上對 既然你父類遵守了這個協議 那么你的其他子類也應該遵守該協議實現該構造方法 ?
2016-08-07
因為你不能保證Parrot的子類沒有實現任何指定構造函數,所以它不一定有init(name: String)