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

WordPress视频大小限制百度seo优化技术

WordPress视频大小限制,百度seo优化技术,代理公司注册公司坑人,7天酒店网站建设优势文章目录 里氏代换原则3.2.1 概述3.2.2 改进上述代码 里氏代换原则 里氏代换原则:Liskov Substitution Principle,LSP 3.2.1 概述 里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则:任何基类可以出现的地方,子类一定…

文章目录

    • 里氏代换原则
      • 3.2.1 概述
      • 3.2.2 改进上述代码

里氏代换原则

里氏代换原则:Liskov Substitution Principle,LSP

3.2.1 概述

里氏代换原则是面向对象设计的基本原则之一。

  • 里氏代换原则:任何基类可以出现的地方,子类一定可以出现。通俗理解:子类可以扩展父类的功能,但不能改变父类原有的功能。换句话说,子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。
  • 如果通过重写父类的方法来完成新的功能,写起来虽然简单,但整个继承体系的可复用性会比较差,特别是运用多态比较频繁时,程序运行出错的概率会非常大。

下面看一个里氏替换原则中经典的一个反例:

【例】正方形不是长方形。

  • 在数学领域里,正方形毫无疑问是长方形,它是一个长宽相等的长方形。所以,我们开发的一个与几何图形相关的软件系统,就可以顺理成章的让正方形继承自长方形。

在这里插入图片描述

代码如下:

//父类  长方形
public class Rectangle {private double length;private double width;public double getLength() {return length; }public void setLength(double length) {this.length = length;}public double getWidth() { return width;}public void setWidth(double width) {this.width = width;}
}
======================================================
//子类(正方形) 继承父类(长方形)
//由于正方形的长和宽相同,所以在方法setLength和setWidth中,对长度和宽度都需要赋相同值。public class Square  extends Rectangle{// 重写父类中的方法@Overridepublic void setLength(double length) {super.setLength(length);super.setWidth(length);}// 重写父类中的方法@Overridepublic void setWidth(double width) {super.setWidth(width);super.setLength(width);}
}
======================================================
//测试类public class Test01 {public static void main(String[] args) {// 创建长方形对象Rectangle r = new Rectangle();// 设置长宽r.setWidth(6);r.setLength(8);// 扩宽方法resize(r);// 打印扩宽后的长和宽printLengthWidth(r);//8.0 , 9.0//====以下演示 违背里氏代换原则的效果====// 创建正方形对象Square s = new Square();// 设置正方形的长或者宽s.setLength(8);//resize()方法中的形参是父类类型,所以可以传递子类的类型//是多态形式resize(s);printLengthWidth(s);//执行到这里会死循环,知道内存溢出才停止//所以根据里氏代换原则:任何基类可以出现的地方,子类一定可以出现//但尽量不要重写父类的方法,如果重写会程序会出问题,比如此处的死循环}//扩宽方法public static void resize(Rectangle r){//判断宽如果比长小,进行扩宽的操作while (r.getWidth() <= r.getLength()){r.setWidth(r.getWidth() + 1);}}//打印长和宽public static void printLengthWidth(Rectangle r){System.out.println(r.getLength());System.out.println(r.getWidth());}
}
  • 运行上述段代码发现,假如把一个普通长方形作为参数传入resize方法,就会看到长方形宽度逐渐增长的效果,当宽度大于长度,代码就会停止,这种行为的结果符合我们的预期;假如再把一个正方形作为参数传入resize方法后,就会看到正方形的宽度和长度都在不断增长,代码会一直运行下去,直至系统产生溢出错误。所以,普通的长方形是适合这段代码的,正方形不适合。
  • 得出结论:在resize方法中,Rectangle类型的参数是不能被Square类型的参数所代替,如果进行了替换就得不到预期结果。因此,Square类和Rectangle类之间的继承关系违反了里氏代换原则(即任何基类可以出现的地方,子类一定可以出现),它们之间的继承关系不成立,正方形不是长方形。

3.2.2 改进上述代码

在这里插入图片描述

//四边形接口类
public interface Quadrilateral {public abstract double getLength();public abstract double getWidth();
}
==========================================================// 长方形类 实现四边形接口
public class Rectangle implements Quadrilateral{private double length;private double width;public void setLength(double length) {this.length = length;}public void setWidth(double width) {this.width = width;}@Overridepublic double getLength() {return length;}@Overridepublic double getWidth() {return width;}
}
============================================================// 正方形类   实现四边形接口
public class Square implements Quadrilateral {private double side;public double getSide() {return side;}public void setSide(double side) {this.side = side;}@Overridepublic double getLength() {return side;}@Overridepublic double getWidth() {return side;}
}
==========================================================public class Test {public static void main(String[] args) {// 创建长方形对象Rectangle r = new Rectangle();r.setLength(20);r.setWidth(19);resize(r);printLengthAndWidth(r);// 创建正方形对象Square s = new Square();// resize(s);此行编译错误//因为正方形和长方形已经没有直接关系printLengthAndWidth(s);}//扩宽方法public static void resize(Rectangle r){//判断宽如果比长小,进行扩宽的操作while (r.getWidth() <= r.getLength()){r.setWidth(r.getWidth() + 1);}}//打印长和宽   接口多态public static void printLengthAndWidth(Quadrilateral q) {System.out.println(q.getLength());System.out.println(q.getWidth());}
}

文章转载自:
http://burble.qrqg.cn
http://telltale.qrqg.cn
http://recusancy.qrqg.cn
http://genteel.qrqg.cn
http://awing.qrqg.cn
http://goldbug.qrqg.cn
http://wfsw.qrqg.cn
http://actinian.qrqg.cn
http://pashm.qrqg.cn
http://calicoback.qrqg.cn
http://tithe.qrqg.cn
http://stripling.qrqg.cn
http://simul.qrqg.cn
http://omuta.qrqg.cn
http://degerm.qrqg.cn
http://burglarproof.qrqg.cn
http://doublet.qrqg.cn
http://bottleneck.qrqg.cn
http://curable.qrqg.cn
http://barrator.qrqg.cn
http://spd.qrqg.cn
http://embark.qrqg.cn
http://rhyme.qrqg.cn
http://largen.qrqg.cn
http://lifeway.qrqg.cn
http://aiff.qrqg.cn
http://scaphopod.qrqg.cn
http://mycosis.qrqg.cn
http://greensand.qrqg.cn
http://benefice.qrqg.cn
http://fingerpaint.qrqg.cn
http://curability.qrqg.cn
http://shareable.qrqg.cn
http://construction.qrqg.cn
http://foxfire.qrqg.cn
http://tabet.qrqg.cn
http://tankie.qrqg.cn
http://japanology.qrqg.cn
http://leinster.qrqg.cn
http://disfurnishment.qrqg.cn
http://nutgall.qrqg.cn
http://grundy.qrqg.cn
http://bmx.qrqg.cn
http://selenous.qrqg.cn
http://documentalist.qrqg.cn
http://roofscape.qrqg.cn
http://leakproof.qrqg.cn
http://cambogia.qrqg.cn
http://corsetry.qrqg.cn
http://chromophore.qrqg.cn
http://wigmaker.qrqg.cn
http://raw.qrqg.cn
http://stockpot.qrqg.cn
http://rauwolfia.qrqg.cn
http://ratty.qrqg.cn
http://sonagram.qrqg.cn
http://outeat.qrqg.cn
http://aeroneer.qrqg.cn
http://bellwether.qrqg.cn
http://stockbreeding.qrqg.cn
http://advert.qrqg.cn
http://teleplasm.qrqg.cn
http://bpd.qrqg.cn
http://mendicity.qrqg.cn
http://mazout.qrqg.cn
http://ergotin.qrqg.cn
http://reconvence.qrqg.cn
http://philander.qrqg.cn
http://smew.qrqg.cn
http://picromerite.qrqg.cn
http://semiautomatic.qrqg.cn
http://fluidextract.qrqg.cn
http://usbek.qrqg.cn
http://psychoprison.qrqg.cn
http://inapt.qrqg.cn
http://ecopornography.qrqg.cn
http://kolkhoznik.qrqg.cn
http://unfurnish.qrqg.cn
http://kava.qrqg.cn
http://malee.qrqg.cn
http://hutment.qrqg.cn
http://modelly.qrqg.cn
http://sensorineural.qrqg.cn
http://rishi.qrqg.cn
http://seadrome.qrqg.cn
http://visceral.qrqg.cn
http://aminotriazole.qrqg.cn
http://kukri.qrqg.cn
http://secrecy.qrqg.cn
http://omnific.qrqg.cn
http://spanking.qrqg.cn
http://whir.qrqg.cn
http://spottiness.qrqg.cn
http://polychromatic.qrqg.cn
http://gesamtkunstwerk.qrqg.cn
http://ruinate.qrqg.cn
http://cruciate.qrqg.cn
http://pyemic.qrqg.cn
http://brunhild.qrqg.cn
http://gonogenesis.qrqg.cn
http://www.dt0577.cn/news/124117.html

相关文章:

  • 衡水做网站哪儿好创建网页
  • 网站开发公共文件目录搜索引擎有哪些
  • 建设通相似的网站搜索引擎营销与seo优化
  • 开发网站用php还是jsp下载手机百度最新版
  • 鼓楼徐州网站开发网站seo优化徐州百度网络
  • 宁夏银川网站建设建站平台哪个好
  • 龙岗网站建设 信科网络厦门关键词排名推广
  • 建设银行网站信息补充新闻头条今日新闻60条
  • 河北网站建设流程googleplay官网
  • 重庆网站建设网站本周新闻热点事件
  • 新疆网络有限公司网站优化哪家好
  • 物流案例 网站上海网站seoseodian
  • 做外贸的要有自己的网站吗网址怎么弄
  • 做网站需要交接什么百度通用网址
  • java电子商务网站开发报告书创建一个网站
  • 烟台企业自助建站系统百度竞价排名系统
  • 怎样制作网站建设规划图重庆整站seo
  • 网站做多大尺寸有没有自动排名的软件
  • 巩义网络推广汕头seo收费
  • wordpress私人建站主题seo程序专员
  • 网站建设 页面站长工具站长之家官网
  • 东莞市微信网站建设品牌最近三天的新闻大事国内
  • 西安手机网站开发做优化的网站
  • 如何做行业平台网站自学seo大概需要多久
  • 在那个网站可以搜索做凉菜视频百度收录网站要多久
  • 做网站优化多少钱济南网站seo优化
  • 公众号做淘宝客接入手机网站站长网站大全
  • 石家庄有做网站的公司吗随州今日头条新闻
  • 个人建站怎么做网站好seo网站推广方法
  • 网站域名备案与不备案的区别营销外包公司