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@H_404_115@,该关键字告诉Swift编译器去检查该类的超类(或者其中一个父类)是否有匹配版本
3、super关键字
a、方法重写中,可以通过super.method()@H_404_115@调用超类的
method@H_404_115@方法
b、属性的getter@H_404_115@或
setter@H_404_115@重写实现中,可通过
super.property@H_404_115@访问超类版本
c、下标脚本重写,可通过super[index]@H_404_115@来访问超类中的相同下标脚本
4、属性
属性这里的规则相对多些,单独提出来讲
子类继承属性并不知道该属性是存储型还是计算型的,只知道一个名字和类型,因此可以提供getter/setter重写,且必须把继承属性的名字和类型都写出来,编译器才能去检验
继承的只读属性可重写为读写属性,提供getter/setter即可。但是继承的读写属性不能写为一个只读属性。
——>
等同于如果重写属性提供setter@H_404_115@,那么一定要提供
getter@H_404_115@。如果不想
getter@H_404_115@修改继承来的属性值,可以直接通过
super.property@H_404_115@来返回继承来的值
可以为继承属性添加属性观察器,常量存储属性和只读计算型不可以
5、防止重写
通过final@H_404_115@关键字,加在方法、属性或下标脚本前
类前面也可以加final@H_404_115@,这样这个类不能被继承
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。