一: 方法
二: mutating
三: discardableResult (可丢弃结果)
四: 下标(函数)
五: 继承
六: 内存结构
七: 重写方法 override
八: 重写属性
九: 属性观察器(子类继承)
一: 方法
截屏2022-05-02 下午6.07.18.png
// 类型方法, 只能调用类型属性
// 类型方法(oc类方法)内部调用self代表类Car
二: mutating
截屏2022-05-02 下午6.12.10.png
// 不加mutating报错 值类型不允许实例方法修改 init方法可以
截屏2022-05-02 下午6.13.28.png
// 注意: 类实例方法是可以修改存储属性的
截屏2022-05-02 下午6.16.24.png
三: discardableResult 函数可丢弃结果关键字
discardable 英释: 可丢弃
截屏2022-05-02 下午6.18.53.png
四: 下标
本质就是个函数, 可以像数组的写法一样调用函数
截屏2022-05-02 下午6.31.20.png
截屏2022-05-02 下午6.31.25.png
截屏2022-05-02 下午6.31.34.png
截屏2022-05-02 下午6.36.34.png
// 接收多个参数的下标
截屏2022-05-02 下午6.40.52.png
五: 继承
截屏2022-05-02 下午6.42.08.png
// 为什属性也能重写呢, 计算属性
六: 内存结构
截屏2022-05-03 上午8.35.18.png
七: 重写方法 overrride
1实例方法重写
截屏2022-05-03 上午8.49.13.png
//想实现父类 调用super
// 不想实现父类 不写super
2 类型方法重写
1 类中声明类型属性 可以用class 或是 static
截屏2022-05-03 上午9.00.34.png
// 子类重写父类类型方法时候, class static也要加上
八: 重写属性
截屏2022-05-03 上午9.32.34.png
8.1 重写实例属性
// 1 实例属性(存储属性)可以重写计算属性
// 2 计算属性可以重写计算属性
截屏2022-05-03 上午9.32.53.png
8.2 重写类型属性
// class修饰可以重写 static不能被重写
截屏2022-05-03 上午9.34.55.png
九: 属性观察器
// 子类可以添加观察器, 监听父类属性
截屏2022-05-03 上午11.42.12.png
// 复杂调用
截屏2022-05-03 上午11.45.31.png
// 计算属性不可以和属性观察器一起写, 但是通过子类可以实现对父类的计算属性实现监听
截屏2022-05-03 上午11.52.37.png