里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。
例子:
public class Rectangle { int width; int height; public Rectangle(int w,int h){ width = w; height = h; } public int getArea(){ return width*height; } } public class Square extends Rectangle { public Square(int w,int h) { super(w,h); } public int getArea(){ return width*width; } } public class Test { public static void main(String[] args) { Rectangle rectangle = new Rectangle(10,20); // Square rectangle = new Square(10,20); System.out.println("面积:"+rectangle.getArea()); } }
当然,这里只是举个例子,实际项目中我们不会这样修改的。
总结: