加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OC基础-里氏替换原则12

发布时间:2020-12-14 01:20:47 所属栏目:百科 来源:网络整理
导读:1. 里氏替换原则 --- LSP 子类可以替换父类的位置 . 并且程序的功能不受影响 . 1). 父类指针迫切的需求要 1 个父类对象 , 而我们给了 1 个子类对象 , 这是完全没有问题的 . 因为子类就是 1 个父类嘛 . 2). 因为父类中拥有的成员 子类都有 . 所以不会影响程序

1. 里氏替换原则 --- LSP

子类可以替换父类的位置.并且程序的功能不受影响.


1). 父类指针迫切的需求要1个父类对象,而我们给了1个子类对象,

这是完全没有问题的.因为子类就是1个父类嘛.


2). 因为父类中拥有的成员子类都有.所以不会影响程序的功能.



2. 里氏替换原则的表现形式.


1个父类指针指向1个子类对象的时候,这里就有里氏替换原则.



3. LSP的作用。


1). 1个指针中不仅可以存储本类对象的地址还可以存储子类对象的地址.


2). 如果1个指针的类型是NSObject类型的,那么这个指针中可以存储任意的OC对象的地址.


3). 如果1个数组的元素的类型是1OC指针类型的那么这个数组中不仅可以存储本类对象还可以存储子类对象.


4). 如果1个数组的元素是NSObject指针类型那么意味着任意的OC对象都可以存储到这个数组之中.


5). 如果1个方法的参数是1个对象,那么我们在为这个参数传值的时候.

可以传递1个本类对象也可以传递1个子类对象.

对方法中的代码不会有丝毫的影响.



4. 父类指针指向1个子类对象

这个时候,通过这个父类指针就只能去调用子类对象中的父类成员.

子类独有的成员无法访问.

因为在编译的时候,会先检查调用的方法在指针类型类中是否存在对应的对象方法,如果没有就通不过编译。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读