Why can't we call superclass convenience initializer from subclass?

One other thing that might not be obvious to a Swift-only programmer is that convenience initializers call a designated initializer on the dynamic type, not the same class. This is a design Swift got from Objective-C, and it's what allows them to be inherited. (Other languages with self.init(…)-like features, like C++, don't have this dynamic behavior and therefore don't have a separate notion of "convenience initializers".)

6 Likes