b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

里氏替换原则_里氏替换原则举例_违反里氏替换原则

电脑杂谈  发布时间:2016-12-11 06:06:49  来源:网络整理

<?php

//例子1
class Bird{

    protect function fly(){
    
    }
}
//翠鸟
class KingFisher extends Bird{

}

//鸵鸟
class Ostrich extends Bird{
    //鸵鸟不会飞啊
}

//例子2

class A{
    protect function add($a, $b){
        return $a + $b;
    }
}

//重载
class B extends A{

    protected function add($a, $b){
        return $a + $b + 100;
    }
}
?>

里氏替换原则是对类继承的一种约束。对里氏替换原则有两种理解:

不能随便去继承不合适的,有多余方法或者属性的类。(例子1)

子类可以扩展父类的功能,但不能改变父类原有的功能。里氏替换原则(例子2)

看了第二个例子,有人会说那岂不是和重载矛盾了。初看是有点,但仔细理解,并不矛盾,我们可以这样处理矛盾:

//例子2

class A{
    protect function add($a, $b){
        return $a + $b;
    }
}

//重载
class B extends A{

    protected function add($a, $b, $c){
        return isset($c) ? $a + $b + 100 : $a + $b;
    }
}

里氏替换原则包含一下几个隐藏含义:

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。里氏替换原则

子类中可以增加自己特有的方法。

当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22692-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 姬据
        姬据

        希望国家坚决制止美军挑衅行为

      热点图片
      拼命载入中...