美文网首页
Swift基础-重载/重写

Swift基础-重载/重写

作者: ZealPenK | 来源:发表于2016-07-26 21:00 被阅读0次

    一.重写(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基础-重载/重写

          本文链接:https://www.haomeiwen.com/subject/ljtojttx.html