swift构造器过程

swift构造器过程_第1张图片

1.Food类

它创建了两个构造器类,一个为指定构造器,一个为便利构造器。指定构造器保证了所有的存储属性都进行了初始化。便利构造器最终指向了指定构造器。由于这里的Food类没有父类因此不需要对父类进行调用来对父类进行初始化。

Food类中的构造器链:

swift构造器过程_第2张图片
构造器链

2.RecipeIngredient类

swift构造器过程_第3张图片
swift构造器过程_第4张图片
构造器链

init(name: String, quantity: Int)为一个指定构造器,他对所有属性进行了初始化,由于它继承自Food类,因此它要对父类进行初始化。另外定义了一个便利构造器,这个构造器由于是重写的父类的指定构造器,因此这导致了它可以继承父类的所有便利构造器。所有的这三种构造器都可以用来创造RecipeIngredient的实例。

创建实例

3.ShoppingListItem类

ShoppingListItem是RecipeIngredient的子类。

swift构造器过程_第5张图片
类实现

由于本类没有定义构造器,因此它将继承父类的所有构造器。


swift构造器过程_第6张图片
继承来的构造器

你可以三种继承来的构造器来进行创建实例。

你可能感兴趣的:(swift构造器过程)