自定义数据类型 --- 继承和构造函数(swift2.3)

来源:互联网 发布:淘宝修改手机绑定 编辑:程序博客网 时间:2024/06/07 05:34

自定义数据类型 — 继承和构造函数(swift)

下面简单的介绍继承和构造函数的应用

  1. 继承基础

  2. 多态性

  3. 重载

  4. 两段式构造

  5. 便利构造函数和指定构造函数

  6. 构造函数的继承

  7. required构造函数


一:继承基础

//继承其实即使子类拥有父类所有的方法和属性

二:多态性

//多态:当一个类继承另一个类的时候,它的属性类型就可以为子类的类型,在这种情况下,可以通过父类,对子类的方法进行操作(很肤浅的理解)

三:重载

//1.如果子类的一个属性想要覆盖掉父类的同一个属性,在var前面加个override//2.同样的父类的方法也是一样,以可以使用override覆盖//3.如果在父类中使用final关键字,那么父类的方法和属性就不能够被子类override了

四:两段式构造

//1.当一个类继承另一个类的时候,如果要初始化子类就必须初始化父类,但是在子类中初始化的顺序为:先初始化子类,再调用父类的初始化init函数初始化父类。//2.当子类要通过self.getScore()调用自己的某个方法的时候,这时候必须保证父类的所有属性已经初始化完成,之后在父类的所有属性初始化完成的时候,self才会有值

五:便利构造函数和指定构造函数

//1.构造函数有默认的参数,也就是当一个类继承另一个类的时候,对子类的初始化函数中可以将子类的参数设置一个默认的值,直接在参数的类型后面加个“=”号就是,这样的话,就可以不需要传子类的参数了//2.静态的方法可以在父类构造之前调用//3.原则就是:在自己的一个init构造函数里再次调用了自己的另外一个构造函数,那么在这个构造函数init前面就必须加上一个关键字convenience//4.(重要)convenience的构造函数只能够调用自己init函数,在指定的构造函数里面才能调用父类的init构造函数

六:构造函数的继承

//1.(重要)如果子类实现了父类的所有的指定构造函数,则子类自动继承父类的所有<便利构造函数>//2.(重要)如果子类没有实现父类的任何构造函数,则子类自动继承父类的所有<指定构造函数>

七:required构造函数

required关键字:写在init函数前面,表示这个类的子类必须实现这个构造函数,
0 0
原创粉丝点击