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

中小企业建站系统360建筑网网址

中小企业建站系统,360建筑网网址,廊坊做网站,网页设计师联盟qq群01.如果接到一个任务#xff0c;要求设计不同型号的悍马车 02.设计一个悍马车的抽象类#xff08;模具#xff0c;车模#xff09; public abstract class HummerModel {/** 首先#xff0c;这个模型要能够被发动起来#xff0c;别管是手摇发动#xff0c;还是电力发动…01.如果接到一个任务要求设计不同型号的悍马车 02.设计一个悍马车的抽象类模具车模 public abstract class HummerModel {/** 首先这个模型要能够被发动起来别管是手摇发动还是电力发动反正* 是要能够发动起来那这个实现要在实现类里了*/public abstract void start(); //能发动那还要能停下来那才是真本事public abstract void stop(); //喇叭会出声音是滴滴叫还是哔哔叫public abstract void alarm(); //引擎会轰隆隆的响不响那是假的public abstract void engineBoom(); //那模型应该会跑吧别管是人推的还是电力驱动总之要会跑public abstract void run(); } 03.具体不同版本的悍马这个是抽象类的具体子类 H1 型号悍马的定义如下 public class HummerH1Model extends HummerModel { Override public void alarm() { System.out.println(悍马H1鸣笛...); } Overridepublic void engineBoom() { System.out.println(悍马H1引擎声音是这样在...); } Overridepublic void start() { System.out.println(悍马H1发动...); }Overridepublic void stop() { System.out.println(悍马H1停车...); } /** 这个方法是很有意思的它要跑那肯定要启动停止了等也就是要调其他方法*/Overridepublic void run() { //先发动汽车this.start(); //引擎开始轰鸣this.engineBoom(); //然后就开始跑了跑的过程中遇到一条狗挡路就按喇叭this.alarm(); //到达目的地就停车this.stop(); } } 然后看悍马 H2 型号的实现 public class HummerH2Model extends HummerModel { Overridepublic void alarm() { System.out.println(悍马H2鸣笛...); } Overridepublic void engineBoom() { System.out.println(悍马H2引擎声音是这样在...); } Overridepublic void start() { System.out.println(悍马H2发动...); } Overridepublic void stop() { System.out.println(悍马H1停车...); } /** H2要跑那肯定要启动停止了等也就是要调其他方法*/Overridepublic void run() { //先发动汽车this.start(); //引擎开始轰鸣this.engineBoom(); //然后就开始跑了跑的过程中遇到一条狗挡路就按喇叭this.alarm(); //到达目的地就停车this.stop(); } } 然后程序写到这里你就看到问题了run 方法的实现应该在抽象类上子类改写的都一样不应该在实现类上好我们修改一下类图和实现 就把 run 方法放到了抽象类中那代码也相应的改变一下先看 HummerModel.java: 04.修改后的抽象类 public abstract class HummerModel { /** 首先这个模型要能够被发动起来别管是手摇发动还是电力发动反正* 是要能够发动起来那这个实现要在实现类里了*/public abstract void start(); //能发动那还要能停下来那才是真本事public abstract void stop(); //喇叭会出声音是滴滴叫还是哔哔叫public abstract void alarm(); //引擎会轰隆隆的响不响那是假的public abstract void engineBoom(); //那模型应该会跑吧别管是人退的还是电力驱动总之要会跑public void run() { //先发动汽车this.start(); //引擎开始轰鸣this.engineBoom(); //然后就开始跑了跑的过程中遇到一条狗挡路就按喇叭this.alarm(); //到达目的地就停车this.stop(); } }05.修改后的抽象类的子类 public class HummerH1Model extends HummerModel { Override public void alarm() { System.out.println(悍马H1鸣笛...); } Overridepublic void engineBoom() { System.out.println(悍马H1引擎声音是这样在...); } Overridepublic void start() { System.out.println(悍马H1发动...); }Overridepublic void stop() { System.out.println(悍马H1停车...); } } public class HummerH2Model extends HummerModel { Overridepublic void alarm() { System.out.println(悍马H2鸣笛...); } Overridepublic void engineBoom() { System.out.println(悍马H2引擎声音是这样在...); } Overridepublic void start() { System.out.println(悍马H2发动...); } Overridepublic void stop() { System.out.println(悍马H2停车...); } }06.运行程序 public class Client { public static void main(String[] args) { //客户开着H1型号出去遛弯了HummerModel h1 new HummerH1Model(); h1.run(); //汽车跑起来了//客户开H2型号出去玩耍了HummerModel h2 new HummerH2Model(); h2.run(); } }07.客户只要在 run 的过程中听到或看都成了呀暴露那么多的方法干啥把抽象方法保护起来 把抽象类上的四个方法设置为 protected 访问权限好了既然客户不关心这几个方法而且这四个方法都是由子类来实现的那就设置成 protected 模式。咦~那还有个缺陷run 方法既然子类都不修改那是不是可以设置成 final 类型呢是滴是滴,类图如下 public abstract class HummerModel { /** 首先这个模型要能够被发动起来别管是手摇发动还是电力发动反正* 是要能够发动起来那这个实现要在实现类里了*/protected abstract void start(); //能发动那还要能停下来那才是真本事protected abstract void stop(); //喇叭会出声音是滴滴叫还是哔哔叫protected abstract void alarm(); //引擎会轰隆隆的响不响那是假的protected abstract void engineBoom(); //那模型应该会跑吧别管是人退的还是电力驱动总之要会跑final public void run() { //先发动汽车this.start(); //引擎开始轰鸣this.engineBoom(); //然后就开始跑了跑的过程中遇到一条狗挡路就按喇叭this.alarm(); //到达目的地就停车this.stop(); } } 大家请看这个 run 方法他定义了调用其他方法的顺序并且子类是不能修改的这个叫做模板方法start、stop、alarm、engineBoom 这四个方法是子类必须实现的而且这四个方法的修改对应了不同的类这个叫做基本方法基本方法又分为三种在抽象类中实现了的基本方法叫做具体方法在抽象类中没有实现在子类中实现了叫做抽象方法我们这四个基本方法都是抽象方法由子类来实现的还有一种叫做钩子方法 。 “客户提出新要求了那个喇叭想让它响就响你看你设计的模型车子一启动喇叭就狂响赶快修改一下”确实是设计缺陷呵呵不过是我故意的那我们怎么修改呢看修改后的类图
http://www.w-s-a.com/news/715722/

相关文章:

  • 西宁市网站建设价格丽水集团网站建设
  • 长宁怎么做网站优化好本机怎么放自己做的网站
  • 诚信网站备案中心网站字体怎么设置
  • 企业网站建设费是无形资产吗佛山网站建设哪个好点
  • 网站建设就业方向国开行网站毕业申请怎么做
  • 创建一个网站的费用wordpress 4.0 安装
  • 会员登录系统网站建设dw软件是做什么用的
  • 手机网站被做跳转长沙网上购物超市
  • 网站建设中网站需求分析设计网站推荐html代码
  • 容易收录的网站台州汇客网站建设
  • 企业网站源码百度网盘下载网站备案号如何查询密码
  • 个人网站建设课程宣传栏制作效果图
  • 自己做的网站能上传吗网上做彩票网站排名
  • 教育培训网站模板下载自己做商务网站有什么利弊
  • 平面设计公司网站兰州室内设计公司排名
  • 个人工作室注册条件温州seo结算
  • 360免费建站系统中国建设银行官网站黄金部王毅
  • 罗源福州网站建设个体户可以网站备案吗
  • 网站开发 专有名词pc网站建设和推广
  • 上海部道网站 建设conoha wordpress
  • 手机测评做视频网站宝塔可以做二级域名网站么
  • 代理公司注册济南重庆seo优化效果好
  • 佛山市骏域网站建设专家徐州网站建设价格
  • 公司做网站多济南好的网站建设公司排名
  • 网站维护的方式有哪几种该网站在工信部的icp ip地址
  • 中小企业服务中心网站建设做考勤的网站
  • 大连网站建设报价wordpress实用功能
  • 学校网站建设自查报告电脑网站制作教程
  • 适合推广的网站世界搜索引擎公司排名
  • 合肥网站建设费用ppt在哪个软件制作