什么是里氏替换原则呢?它在程序中用什么作用呢?

解决方案 »

  1.   

    http://baike.baidu.com/view/1688346.htm
      

  2.   

    里氏替换原则:其子类对象可以代替父类对象,但其父类对象不能代替子类对象.
    如:有一个父类:public abstract class A{}
       有两个子类都继承父类A:
                          public class B:A{}
                          public class C:A[]
       那么运用里氏替换原则就可以:
                           A a = new B();或:A a = new C();
       但不可以: B b = new A();
      

  3.   

    OOP的思想里关于继承的描述:
      子类对象可以代替父类对象;
      父类对象不能代替子类对象;
      父类的方法可以在子类中重写。
      

  4.   

    就是子类必须能够完全替代 父类,否则就是不合理的继承关系。
    换就话说,就是父类的方法 是子类全部需要的,如果不是全部需要的,你的继承关系就存在问题。
    例如。 父类(Anaimal)里有两个方法  Fly 和 Run. 但是 子类 Dog 只需要Run方法,而不需要Fly这个方法。
    所以这个父类就有问题。需要进一步优化,变成 飞行类动物和不会飞行的动物两个类,这两个类都继承动物类。
    并将 原动物类里的 方法 Fly 移动飞行类动物里,Run方法 还留在动物类里,而Dog 继承 不会飞行的动物那个 
      

  5.   

    这就是所谓的接口编程,
    有一个接口A,有一个实现了A接口的类B;
    可以这么写: A a=new B(); 
    用接口引用来代替B类的实例相信你看得懂
      

  6.   

    面向对象编程的五大原则之一:
    单一职责原则
    开放封闭原则
    里氏替换原则
    依赖倒置原则
    接口隔离原则里氏替换原则:用俗话说就是 老鼠的儿子生来会打洞,表述的是一种继承关系继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。 
    OCP作为OO的高层原则,主张使用“抽象”和“多态”将设计中的静态结构改为动态结构,维持设计的封闭性。 
    “抽象”是语言提供的功能。“多态”由继承语义实现。