码迷,mamicode.com
首页 > 其他好文 > 详细

OC之里氏替换原则

时间:2017-01-15 19:29:16      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:子类   元素   并且   类对象   参数   原则   bsp   影响   替换   

 

 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个子类对象的时候

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

OC之里氏替换原则

标签:子类   元素   并且   类对象   参数   原则   bsp   影响   替换   

原文地址:http://www.cnblogs.com/jialiangliang/p/6287550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!