OC之里氏替换原则

 

 1. 里氏替换原则. LSP

 

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

 

    为什么?

 

    1). 指针是1个父类类型,但是我们确给了指针1个子类对象的地址.

        这样做当然是可以的,因为你要1个父类对象,我给了你个子类对象.

        子类就是1个父类嘛.

 

    2). 因为父类中的成员子类都有. 只会多不会少.

        所以,程序的功能不受影响.

 

 

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

 

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

 

 

 3. LSP的好处是什么?

 

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

 

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

        C语言中学习到的那些类型不是OC对象.

 

        所以,NSObject类型的指针,我们叫做万能指针.

 

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

 

    4). 如果1个数组的元素的类型是NSObject*类型的,

        那么就意味 这个数组可以存储任意的OC对象.

 

    5). 如果你发现1个方法的参数是1个父类对象 那么实参可以是1个父类对象,也可以是1个子类对象.

 

 

 4. LSP的局限性.

 

    当1个父类指针指向1个子类对象的时候

    只能通过这个父类指针去访问这个子类对象中的父类成员. 子类独有的成员无法访问.

转载于:https://www.cnblogs.com/jialiangliang/p/6287550.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值