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.在给可选项赋值的时候,才会分配内存空间,是延迟分配的;

你可能感兴趣的:(Swift基础-重载/重写)