加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift(十三、继承)

发布时间:2020-12-14 01:39:55 所属栏目:百科 来源:网络整理
导读:1、Swift入门学习笔记(第一版),对Swift的基础知识点进行梳理总结。知识点一直在变,只是作为参考, 以苹果官方文档为准~ 2、在学习完基本的知识点以后会结合官方文档及相关资料,在此版本的基础上进行添加更改。 十三、继承 1、基类 不继承于其他类的类

1、Swift入门学习笔记(第一版),对Swift的基础知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~

2、在学习完基本的知识点以后会结合官方文档及相关资料,在此版本的基础上进行添加更改。


十三、继承


1、基类

不继承于其他类的类

区别于OC,Swift不是从一个通用的基类继承而来,如果一个类没指定超类,这个类自动成为基类

class Person {
    var name:String = ""
    var age:Int = 0
    func infoPrint() {
        print("Person name :(self.name),age :(age)")
    }
}

let personA = Person()
personA.name = "Zane"
personA.age  = 21
personA.infoPrint()

Output:

Person  name :Zane,age :21

2、子类

子类也可以被其他类继承

2.1、基本使用

class Student:Person {
    var height:Double = 170.0
    override func infoPrint() {
        print("Student name :(self.name),age :(age),height :(height)")
    }
}

let studentA = Student()
studentA.height = 180.5
studentA.name = "Zhu"
studentA.age = 22
studentA.infoPrint()

Output:

Student name :Zhu,age :22,height :180.5

2.2、重写

前面的例子已写出,利用override,该关键字告诉Swift编译器去检查该类的超类(或者其中一个父类)是否有匹配版本

子类中可以重写超类的方法、属性、下标脚本


3、super关键字

a、方法重写中,可以通过super.method()调用超类的method方法

b、属性的gettersetter重写实现中,可通过super.property访问超类版本

c、下标脚本重写,可通过super[index]来访问超类中的相同下标脚本


4、属性

属性这里的规则相对多些,单独提出来讲

子类继承属性并不知道该属性是存储型还是计算型的,只知道一个名字和类型,因此可以提供getter/setter重写,且必须把继承属性的名字和类型都写出来,编译器才能去检验

继承的只读属性可重写为读写属性,提供getter/setter即可。但是继承的读写属性不能写为一个只读属性
——>
等同于如果重写属性提供setter,那么一定要提供getter。如果不想getter修改继承来的属性值,可以直接通过super.property来返回继承来的值

可以为继承属性添加属性观察器,常量存储属性和只读计算型不可以


5、防止重写

通过final关键字,加在方法、属性或下标脚本前

类前面也可以加final,这样这个类不能被继承

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读