博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重载构造函数
阅读量:5226 次
发布时间:2019-06-14

本文共 1019 字,大约阅读时间需要 3 分钟。

重载构造函数

  • Swift 中支持函数重载,同样的函数名,不一样的参数类型
/// `重载`构造函数////// - parameter name: 姓名/// - parameter age:  年龄////// - returns: Person 对象init(name: String, age: Int) {    self.name = name    self.age = age        super.init()}

注意事项

  • 如果重载了构造函数,但是没有实现默认的构造函数 init(),则系统不再提供默认的构造函数
  • 原因,在实例化对象时,必须通过构造函数为对象属性分配空间和设置初始值,对于存在必选参数的类而言,默认的 init() 无法完成分配空间和设置初始值的工作

调整子类的构造函数

  • 重写父类的构造函数
/// `重写`父类构造函数////// - parameter name: 姓名/// - parameter age:  年龄////// - returns: Student 对象override init(name: String, age: Int) {    no = "002"        super.init(name: name, age: age)}
  • 重载构造函数
/// `重载`构造函数////// - parameter name: 姓名/// - parameter age:  年龄/// - parameter no:   学号////// - returns: Student 对象init(name: String, age: Int, no: String) {    self.no = no        super.init(name: name, age: age)}

注意:如果是重载的构造函数,必须 super 以完成父类属性的初始化工作

重载重写

  • 重载,函数名相同,参数名/参数类型/参数个数不同
    • 重载函数并不仅仅局限于构造函数
    • 函数重载是面相对象程序设计语言的重要标志
    • 函数重载能够简化程序员的记忆
    • OC 不支持函数重载,OC 的替代方式是 withXXX...
  • 重写,子类需要在父类拥有方法的基础上进行扩展,需要 override 关键字

转载于:https://www.cnblogs.com/MarkusFeng/p/5067981.html

你可能感兴趣的文章
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
实验2-2
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
CodeForces - 878A Short Program(位运算)
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>