swift 学习- 继承

1.计算属性不占据内存,相当于是方法调用

2.子类可以将父类的属性(存属,计算)重写为计算属性(只能重写为计算属性)

3.子类不能将父类属性重写为存储属性

4.只能重写var属性,不能重写let属性, 重写时候,属性名和类型要一致

5.子类重写后的属性权限不能小于父类属性的权限

例如: 如果父类属性是只读的,那么子类重写后的属性可以是只读,也可以是可读写的

 如果父类属性是可读写的,那么子类重写后的属性也必须是可读写的

7.重写类型属性

(1)被class修饰的计算类型属性(存属类型不能被重写),可以被子类重写

(2)被static修饰的类型属性(存储、计算),不可以被子类重写

8.属性观察器

可以在子类中为父类属性(可以是计算属性,也可以是存储属性)(除了只读计算属性,let属性)增加属性观察器

9.被final修饰的方法,属性,下表,禁止被重写

被final修饰的类,禁止被继承

10.结构体不存在继承,

11.结构体在编译时就能确认调用那些方法,类只有在运行时才能确认调用谁的方法

10.swift 中的多态 : 虚函数表指针 vTable

指向当前对象的实际类型(二次指针间接运算)

你可能感兴趣的:(swift 学习- 继承)