zoukankan      html  css  js  c++  java
  • 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个子类对象的时候

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

    不忘初心,方得始终
  • 相关阅读:
    正交实验
    边界值
    等价类划分概述
    测试用例编写
    java基础复习(四)
    easyui datagrid 搜索功能
    一段代码把网站变成灰白色
    PHP 获取二维数组中某个key的集合
    如何使用Mobile_Detect来判断访问网站的设备:安卓,平板,电脑
    easyui validatebox 验证类型
  • 原文地址:https://www.cnblogs.com/jialiangliang/p/6287550.html
Copyright © 2011-2022 走看看