OC----里氏替换原则(LSP): 子类可以替换父类的位置,并且程序的功能不受影响
程序员文章站
2022-03-09 19:48:38
...
父类要一个父类对象,可以给一个子类对象. 如:[Person *stu = Studen new];
原则: 当一个父类指针指向一个子类对象的时候,这里就有里氏替换原则.
LSP 作用:
1. 一个指针可以存储本类对象的地址,还可能存储子类对象的地址
2. 如果一个指针的类型是NSObject 类型,那么这个指针可以存储任意的OC 对象的地址
3. 如果一个数组的元素类型是一个OC 指针类型,这个数组可以存储本类对象,子类对象
Person *ps[3];
ps[0] = [Person new];
ps[1] = [Studen new];
ps[2] = [MidStu new];
4. 如果一个数组的元素是NSObject 指针类型,这个数组可以存储任意OC 对象
NSObject *obj[2];
obj[0] = [Studen new];
obj[1] = @"Tom";
5. 如果一个方法的参数是一个对象, 为参数传值的时候,可以传递一个本类对象,子类对象
注意:当一个父类指针指向一个子类对象时,通过这个父类指针就只能去调用子类中的父类成员,
(本身)子类独有的成员无法访问.----指针指向的问题
上一篇: 【模板】最长公共子序列
下一篇: 【模板】ST表求LCA