* extension相当于OC中的分类, 特点和OC中的分类一样
* 不能定义存储属性
* 如果想给系统的类新增构造方法, 那么只能新增一个便利构造方法
* 如果构造方法是以init开头, 那么该构造方法就是一个指定构造方法
* 如果构造方法的init前面还有convenience, 那么这个构造方法就是一个便利构造方法
* 指定构造器和便利构造器区别:
* 指定构造器:
* 必须初始化当前类的所有属性
* 便利构造器:
* 不用初始化当前类的所有属性, 但是它依赖于当前类中的其它构造方法
* 必须在`便利构造方法`中调用`当前类`的其它`指定构造方法`
* 在开发中, 不要随便定义便利构造器, 只有当需要提供一个方法快速创建对象时, 或者在当前构造方法中没有办法初始化所有属性时, 才定义便利构造器