而在 Swift 中可以所有属性的值由开发者来指定....指定构造器将调用父类的构造器, 完成父类属性的初始化.
这个调用父类构造器的过程沿着构造器链一直往上执行, 直到到达构造器链的最顶部....阶段 2
从顶部构造器链一直向下, 每个构造器链中类的指定构造器都有机会进一步定制实例. 构造器此时可以访问 self, 修改它的属性并调用实例方法等等。...如果子类提供了所有父类指定构造器的实现, 不管是通过 规则 1 继承过来的, 还是通过自定义实现的, 它将自动继承所有父类的便利构造器....如果子类提供了所有父类指定构造器的实现, 不管是通过上一条规则继承过来的, 还是通过自定义实现的, 它将自动继承所有父类的便利构造器.