Java - 定义 - “替代原则”

时间:2011-06-11 16:32:14

标签: java

我在阅读有关继承时总是使用“替代原则”定义的摘要。但它没有解释这一原则的含义。

这个原则是什么?

谢谢。

5 个答案:

答案 0 :(得分:3)

这显然意味着:子类必须遵守超类设置的契约。

如果你扩展一个超类,你应该阅读它的文档并按照它的要求实现。就是这样。

如果我再听一次“Liskov替换”,我将杀死一只小猫。

答案 1 :(得分:2)

基本上说实现确定接口的类可以被实现相同接口的任何其他类替换。您可以在Liskov's Substitution Principle引用定义中找到有关此内容的更多信息:

“如果程序模块正在使用Base类的引用,那么它应该能够用Derived类替换Base类,而不会影响程序模块的功能。”

答案 2 :(得分:2)

使用指针或对基类的引用的函数必须能够使用派生类的对象而不知道它

它也被称为liskov替换

答案 3 :(得分:1)

你可能知道它,而不是这个名字。

http://en.wikipedia.org/wiki/Liskov_substitution_principle

它只是说“如果S是T,那么对T的引用可以改为对S的引用。”

答案 4 :(得分:0)

替换原则或Liskov替换原则(LSP)基本上表明,如果在每个场景中该对象都可以用作其父对象,则对象应该只在层次结构中。举个具体的例子:

public class Rectangle    {  
   //Stuff about rectangles    }  

public class Square extends Rectangle    {  
   //VIOLATES LSP!!  
} 

explanation here

public abstract class Shape  
{  
   //stuff about shapes  
}  

public class Square extends Shape  
{  
   //Square  
}  

public class Rectangle extends Shape  
{  
    //Rectangle  
}