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

如何调整网站板块位置网络营销实验报告

如何调整网站板块位置,网络营销实验报告,军事新闻最新消息今天,陕西省住房建设部官方网站一建什么是里氏替换原则:只要父类能出现的地方子类就可以出现,而且 替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。…

什么是里氏替换原则:只要父类能出现的地方子类就可以出现,而且 替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。

简而言之,子类在重写或重载父类的方法时,对方法的返回值或输入参数应该是“小于等于”(或更具体)于父类的方法。这里的“小于等于”指的是继承关系中子类方法的行为不应该超出父类方法的行为范围。

为了更好地理解,让我们来解释一下含义:

  1. 覆写(Override)的情况: 当子类覆写父类的方法时,子类的方法应该具有相同的方法名、相同的输入参数,但方法体可以重新实现。在这种情况下,方法的返回值类型(也称为方法的协变类型)应该是父类方法返回值类型的子类型(即小于等于父类返回值类型)。这是为了确保子类的行为不会超过父类的行为范围。

  2. 重载(Overload)的情况: 重载是指在同一个类中,方法名相同但输入参数不同的情况。在继承关系中,子类可以重载父类的方法,但是子类重载的方法应该有更宽松的输入参数要求,即子类的输入参数类型应该是父类的输入参数类型的父类型(即宽于或等于父类输入参数类型)。这是为了确保子类方法可以适用于更广泛的输入。

总结起来,LSP要求子类覆写的方法不应该做超出父类方法行为范围的事情,而子类重载的方法应该具有更广泛的输入参数要求。这样可以保证在使用子类对象替代父类对象时,不会出现意外的行为,同时保持了代码的可靠性和一致性。

总结一下:

1、覆写是返回值的范围应该变小(确保行为范围),重载是入参的范围应该变大。

2、同时类的覆写和类的重载本身与返回值没有关系。

子类中方法的前置条 件必须与超类中被覆写的方法的前置条件相同或者更宽松

这句话在讲述里氏替换原则(Liskov Substitution Principle,LSP)中的另一个关键概念,即子类中覆写(重写)方法的前置条件(preconditions)与父类中被覆写方法的前置条件相比应该保持相同或者更宽松。

前置条件指的是方法执行前需要满足的一些条件,以确保方法的正常执行。里氏替换原则要求:

  1. 相同的前置条件: 子类中覆写父类方法时,子类方法的前置条件必须与父类方法的前置条件相同。这意味着在调用子类方法之前,所需的条件和约束应该与调用父类方法时相同,以确保代码的稳定性和可预测性。

  2. 更宽松的前置条件: 子类方法的前置条件可以比父类方法更宽松。这是为了增强子类的灵活性和适用性。如果子类方法的前置条件比父类方法宽松,那么意味着子类方法可以在更多的情况下被调用,而不会破坏程序的正确性

总之,这一原则确保了子类的方法在被调用时,能够满足至少与父类方法相同的前置条件,以及更宽松的前置条件,从而避免了在子类中破坏父类行为的情况。这有助于保持代码的合理性和可维护性。

demo:

public class Father {public Collection doSomething(Map map) {System.out.println("父类被执行...");return map.values();}
}public class Son extends Father {//子类的范文更小,所以最后没有满足 里氏替换原则public Collection doSomething(HashMap map) { System.out.println("子类被执行...");return map.values();}
}public class Client {public static void invoker() {Father f = new Father();HashMap map = new HashMap();f.doSomething(map);}public static void main(String[] args) {invoker(); //父类被执行...}
}public class Client {public static void invoker() {Son f = new Son();HashMap map = new HashMap();f.doSomething(map);}public static void main(String[] args) {invoker(); //子类被执行...  没有满足 里氏替换原则}
}

http://www.yayakq.cn/news/770971/

相关文章:

  • 企业门户网站模板 下载wordpress网站压缩
  • html5微网站源码wordpress yuti
  • 网站建设实验原理北京高端网站开发公司
  • 麻章手机网站建设主机做网站服务器
  • 重庆学校网站推广蜂蜜做的好网站或案例
  • 外包网站平台网页设计费用一般收多少合适
  • 企业网站建设网站优化推广广州seo关键词优化是什么
  • 小说网站怎么做流量吗qq邮箱做网站
  • 西北网站建设国内网站做国外服务器
  • 网站设计策划书怎么写七牛云如何做网站缓存
  • 怎么用链接进自己做的网站中亿丰建设集团股份有限公司网站
  • 网站文字不能编辑器哈尔滨市建设工程质量安全站
  • 畜牧业网站建设企业培训课程推荐
  • 白云区建设局网站网站开发进度设计与阶段目标
  • 怎么做球球业务网站厦门企业网站设计公司
  • 英文网站seo宝安多屏网站建设公司好吗
  • 网站建设招聘信息codepen wordpress
  • 火星建站和八亿建站html旅游网站制作代码
  • 微信网站系统怎么更改网站首页图片
  • 三大门户网站是什么本地wordpress 外网访问
  • 茶叶网站开发福田瑞沃前四后四车价格
  • 自己做网站卖东西怎么样网络推广培训班好吗
  • 如何写网站代码是什么原因电子商务网站建设规划说明书
  • 要制作一个自己的网站wordpress 文章名翻译
  • 免费的英文电子外贸网站建设网站架设流程
  • 韩雪个人官方网站赤壁网站建设
  • wordpress 安卓主题下载失败seo外链是什么
  • 宁夏建设局网站建筑工程网络图视频教程
  • 北京城建亚泰建设集团有限公司网站重庆新闻630
  • 番禺建设银行网站个人网站建设好之后怎么赚钱