1.计算属性不占据内存,相当于是方法调用
2.子类可以将父类的属性(存属,计算)重写为计算属性(只能重写为计算属性)
3.子类不能将父类属性重写为存储属性
4.只能重写var属性,不能重写let属性, 重写时候,属性名和类型要一致
5.子类重写后的属性权限不能小于父类属性的权限
例如: 如果父类属性是只读的,那么子类重写后的属性可以是只读,也可以是可读写的
如果父类属性是可读写的,那么子类重写后的属性也必须是可读写的
7.重写类型属性
(1)被class修饰的计算类型属性(存属类型不能被重写),可以被子类重写
(2)被static修饰的类型属性(存储、计算),不可以被子类重写
8.属性观察器
可以在子类中为父类属性(可以是计算属性,也可以是存储属性)(除了只读计算属性,let属性)增加属性观察器
9.被final修饰的方法,属性,下表,禁止被重写
被final修饰的类,禁止被继承
10.结构体不存在继承,
11.结构体在编译时就能确认调用那些方法,类只有在运行时才能确认调用谁的方法
10.swift 中的多态 : 虚函数表指针 vTable
指向当前对象的实际类型(二次指针间接运算)
网友评论