黑马程序员技术交流社区

标题: 什么是里氏替换原则,请举例说明. [打印本页]

作者: 不是炎亚纶    时间: 2013-11-11 16:28
标题: 什么是里氏替换原则,请举例说明.
谢谢回答{:soso_e178:}
作者: Goes_By    时间: 2013-11-11 17:56
里氏替换原则直观理解就是"子类是父类",反过来就说不通了.
就像男人是人对的,但人是男人就不对了.
作者: linuxcc    时间: 2013-11-12 00:30

如例//…
Student stu1 = new Student();
Student stu2 = new Student();
List<Person> person = new List<Person>();
person.Add(stu1);
person.Add(stu2);    .//子类对象可以替换父类

//…

子类的对象能够替换其父类
父类对象不能够替换子类
父类的方法都要在子类中实现或者重写

作者: 一席倾城    时间: 2013-11-13 20:42
里氏替换原则:其子类对象可以代替父类对象,但其父类对象不能代替子类对象.
如:有一个父类: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();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2