当前位置: 首页 > news >正文

天津网站建设信息科技有限公司个人网站建设的目标

天津网站建设信息科技有限公司,个人网站建设的目标,黄岩城市建设发展集团网站,品牌设计公司名称一、里式替换原则(Liskov Substitution Principle ) 1、原理 子类型必须能替换掉它们的基类型,在使用继承时,遵循里式替换原则,在子类中尽量不要重写父类中的方法。里式替换原则告诉我们,继承实际上让两个…

一、里式替换原则(Liskov Substitution Principle )

1、原理

子类型必须能替换掉它们的基类型,在使用继承时,遵循里式替换原则,在子类中尽量不要重写父类中的方法。里式替换原则告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下,可以通过依赖、组合、聚合等来解决问题

2、面向对象的继承性的思考

继承包含这样的一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就对整个继承体系造成破坏。

继承再给程序设计带来便利的同时,也带来了弊端。比如:使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。

3、示例

3.1、版本一

定义一个A类与B类,B类继承A类,在B类中重写了A类中的func1方法,在方法调用时会遇到困惑,如下:

#include <iostream>
using namespace std;class A
{
public:int func1(int num1, int num2){return num1 - num2;}
};class B : public A
{
public:// 派生类重写父类的方法int func1(int num1, int num2){return num1 + num2;}
};int main()
{A objA;B objB;cout << objA.func1(11, 3) << endl;  // 输出结果:8cout << objB.func1(11, 3) << endl;  // 输出结果:14return 0;
}

上述代码存在的问题

  • 调用B对象的func1方法时,预期结果与调用A对象的func1方法一致,实际上由于B类重写了func1方法,导致输出结果不符合预期

3.2、版本二

为了解决重写父类方法带来的问题,通常的做法是让原先的父类与子类都继承自一个更通用的基类,原有的继承关系去掉,使用依赖、组合、聚合等替代,改进后的代码如下:

#include <iostream>
using namespace std;class Base
{// 把通用的方法写到基类
};class A : public Base
{
public:int func1(int num1, int num2){return num1 - num2;}
};class B : public Base
{
public:B(){m_pA = new A;}int func1(int num1, int num2){return num1 + num2;}// B类中调用A类提供的方法int func2(int a, int b){return m_pA->func1(a, b);}private:// 通过成员变量建立与A类的关联关系A *m_pA;
};int main()
{A objA;B objB;cout << objA.func1(11, 3) << endl;cout << objB.func2(11, 3) << endl;return 0;
}
http://www.yayakq.cn/news/535352/

相关文章:

  • 做网盘搜索网站国外优秀企业网站
  • 海尔集团电子网站建设上海手机网站制作哪家好
  • 专业网站改版如何看一个关键词在某个网站是否被百度收录
  • 网站栅格化怎么做高德地图导航下载
  • 网站会员推广功能北京网站建设曝光尚词网
  • 做网站需要那些东西网站流量刷
  • 麻涌手机网站设计网站建设自我介绍
  • 重庆森林电影宁波seo哪家好快速推广
  • 一个空间放多个网站中国设计网站导航
  • 那些网站专门做游戏辅助的英文seo是什么意思
  • 营销型企业网站分析与诊断免费域名app官方下载
  • 大型网站流量wordpress 如何发布文章
  • 专业网站建设模块维护天元建设集团有限公司欠薪问题
  • 生物网站建设南京谷歌seo
  • 怎样在建设部网站查资质证书电子科技 深圳 网站建设
  • 创建网站的基本流程网站建设平台资讯
  • 大丰建站wordpress 百度地图api
  • 什么网站发布建设标准交互网站建设需要做什么
  • 长岛网站建设费用学做名片的网站
  • 嘉兴网站建设模板网站国际重大新闻事件10条
  • 做渔具网站温州网站优化价格
  • 网站建设的步骤以及流程网站 未备案 支付宝
  • 手机做网站知乎做现货黄金网站
  • 产品是做网站wordpress登录开发
  • 网站建设代码出现乱码腾讯qq网页版在线登录
  • 网站停留时间西安的网站设计公司名称
  • 网站开发都有哪些wordpress安卓 图片大小
  • 春蕾科技 网站建设给企业做网站推广好么?
  • 网站建站平台源码软件开发工具与平台
  • 云浮罗定哪有做网站的电子商务网站建设的步骤一般