欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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. 如果一个方法的参数是一个对象, 为参数传值的时候,可以传递一个本类对象,子类对象
 
 注意:当一个父类指针指向一个子类对象时,通过这个父类指针就只能去调用子类中的父类成员,
     (本身)子类独有的成员无法访问.----指针指向的问题
相关标签: OC