LSP里氏替换原则----正方形不是长方形和鸵鸟不是鸟的测试程序

本文通过实例探讨了里氏替换原则(LSP)在编程中的应用,通过比较正方形和长方形的关系,揭示了遵循LSP的重要性,并指出为何在某些情况下,正方形不能简单被视为长方形的特例。同时,类比到动物分类,解释了为何鸵鸟不符合鸟类的抽象行为,以此来加深对LSP原则的理解。
摘要由CSDN通过智能技术生成
//面向对象设计原则:LSP里氏替换原则
//正方形不是长方形的测试程序

#include <iostream>
using namespace std;

//长方形类Rectangle
class Rectangle 
{
private:
	int width;
	int height;
public:
	int getWidth(){ return width; }
	virtual void setWidth(int w){ width=w; }
	int getHeight(){ return height; }
	virtual void setHeight(int h){ height=h; } 
};


//正方形类Square
class Square :public  Rectangle 
{public:
   void setWidth(int w) 
    {Rectangle::setHeight(w);
     Rectangle::setWidth(w);  
   }
   void setHeight(int h)
    {Rectangle::setHeight(h);
     Rectangle::setWidth(h);
   } 
};

//测试类 TestRectangle 
class TestRectangle 
{ public:
     void resize(Rectangle &objRect) 
     {while(objRect.getWidth() <= objRect.getHeight() ) 
         {objRect.setWidth( objRect.getWidth() + 1 );}
	  cout<<"resize over!"<<endl;
	  cout<<"height="<<objRect.getHeight()<<"  widt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值