IDE:Xcode Version7.3.1

指定构造器:

  1>名字为init的方法前没有前缀(子类重写时有override除外),

  2>一个类中至少有一个指定构造器,其必须初始化类中的所有实例存储属性

便利构造器:

  1>前缀为convenience的init方法,便利构造器属于次要的,辅助性的构造器.

  2>便利构造器必须调用同一个类中的其他构造器完成其初始化.

  3>只有类中才有便利构造器,枚举结构体中是没有的.

构造器链:(即构造器之间的调用)

  1>指定构造器总是向上调用父类的构造器(如果有父类)

  2>便利构造器总是横向调用当前类的其他构造器

  3>构造器链的最终节点一定是父类的指定构造器(如果有父类)

         

    

  

class Fruit{
var name:String
var weight:Double
  //定义指定构造器 最少一个且这一个要负责初始化勒种所有的实例存储属性
init(name:String){//①
self.name = name
self.weight = 0.0
}
//定义便利构造器
convenience init(name:String,weight:Double){//②
//调用本类中的①号指定构造器
self.init(name:name)
self.weight = weight
}
//定义另一个便利构造器 有外部参数
convenience init(n name:String,w weight:Double){//③
//调用本类的②号便利构造器
self.init(name:name)
}
} class Apple:Fruit{
var color:String
init(name:String, weight:Double, color:String){//④
    //指定构造器必须先向上调用父类构造器,然后才能对继承得到的属性赋值
  //  self.name = "123"//会报错,因为还没有调用父类的构造器
// print("color:\(self.color)")//报错 因为还没有初始化
self.color = color
print("color:\(self.color)")//初始化了 ok了
//子类的指定构造器必须调用父类的指定构造器,此处调用父类①号构造器
super.init(name: name)
self.weight = weight
}
init(){//⑤
//指定构造器必须先初始化当前类中定义的实例存储属性(子类的独有属性),然后才能向上调用父类构造器
self.color = ""//这一行如果写在super.init(name:"")后面就会报错
//子类指定构造器必须调用父类的指定构造器,此处调用父类①号构造器
super.init(name: "")
self.weight = 0.0
}
//定义一个便利构造器
convenience init(name:String,color:String){//⑥
//调用本类中④号指定构造器
self.init(name:name,weight:0.0,color:color)
}
//定义另一个便利构造器
convenience init(n name:String,c color:String){//⑦
//调用本类中⑥便利构造器
self.init(name:name,color:color)
}
}

最新文章

  1. LoadRunner11.0下载及安装链接~(By网络)
  2. AngularJS安装配置与基础概要整理(上)
  3. C++ 面向对象编程
  4. ADO,OLEDB,ODBC,DAO的区别【转】
  5. hibernate关于一对一用法
  6. Yarn中如何生成状态机图
  7. QTableWidget嵌入QpushButton后定位是哪一个QpushButton
  8. Java SE学习之printf 日期转换符
  9. 【转】android蓝牙开发---与蓝牙模块进行通信--不错
  10. 【IOS学习基础】文件相关
  11. MySQL 架构
  12. PE解析器的编写(三)——区块表的解析
  13. python3——模块
  14. ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】
  15. JAVA 第1课
  16. 每月最后一周的周六晚上21:00执行任务-crontab
  17. 【iCore1S 双核心板_FPGA】例程十:乘法器实验——乘法器的使用
  18. 安装httpd服务配置
  19. JS生成指定范围内的随机数(支持随机小数)
  20. 重温jsp③

热门文章

  1. MFC学习(三):项目学习
  2. ViewController关闭自身返回前一个View
  3. 南昌网络赛 I. Max answer 单调栈
  4. day11学python 多线程+queue
  5. kali linux之Meterpreter
  6. 跑monkey前开启/关闭系统通知栏
  7. [ActionScript 3.0] 与C#通信方法fscommand
  8. 本机安装mysql服务
  9. python 数据分析 文章集锦
  10. String 源码浅析(一)