Swift基础-重载/重写

一.重写(override):

a.基础概念:
1.override(重写):父类方法不能满足子类,需要子类自己去扩展一下,所以我们需要重写父类方法:重写是由关键字的override的
2.重写是重写父类的方法,有继承的关系

3.隐式调用:xcode 7 bate5之后,系统会默认调用super.init(没写出来,但实际上已经调用了),建议手写,提高可读性
4.swift引入了命名控件的概念,project中都共享,不需要引入,但集成第三方框架时,pod中的文件还是要引入头文件的

b.子类方法:
几种必选属性的构造函数:必选属性必须在init里完成设置初始化工作;
完成本类属性的初始化工作后,调用父类的初始化方法,完成父类初始化;

c.构造函数:给对象初始化的方法,给对象的成员变量设置初始值:
1.相当于OC中的initWithXXX
2.Swift支持重载,所有的构造函数都是init;
3.构造函数的作用:相当于alloc/init

二.重载:(OC中的自定义构造方法)

1.概念:方法名相同,参数个数不同;
2.可以在定义对象的时候,给对象传入初始化值;
3.我们重载了构造函数.如果没有实现默认的构造函数,系统就不提供默认的构造函数了;
4.为什么不提供init:因为本类的必选属性必须完成初始化,而默认的初始化方法无法完成本类属性的初始化工作;
5.重载还可以重载函数等,重载时,参数个数不同

三.子类的重载构造函数:

1.给本类属性赋值;
2.调用父类的一个构造函数;
3.总之,你得现解决子类自己的事情,然后用父类的方法把父类的事情也解决,才是一个好子类~~

四.可选项的初始化方法:

1.可选属性的默认值是nil(不管是String还是Int等)
2.可以不在super.init()前进行初始化,初始值为nil
3.在给可选项赋值的时候,才会分配内存空间,是延迟分配的;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 123.继承 一个类可以从另外一个类继承方法,属性和其他特征。当一个类继承另外一个类时, 继承类叫子类, 被继承的...
    无沣阅读 5,275评论 2 4
  • 下标脚本 下标脚本 可以定义在类、结构体和枚举这些目标中,可以认为是访问集合(collection),列表(li...
    cht005288阅读 3,311评论 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,474评论 1 10
  • 构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例可用前必须执行这个过程,具体操作包括设置实例中每个...
    莽原奔马668阅读 3,952评论 0 3
  • 官方文档 初始化 Initialization是为准备使用类,结构体或者枚举实例的一个过程。这个过程涉及了在实例里...
    hrscy阅读 4,829评论 0 1

友情链接更多精彩内容