此例演示java中接口的一般用法。

屋子里有一群程序员,每个人在写着自己的类,共同构建一个世界。

项目经理突然出现:“打扰大家一下,公司决定举办一个竞速比赛,你们写的类都可以参加。为了比赛的顺利进行,大家的类都必须要实现一个速度接口和一个保养接口。速度接口要完成启动、提速、刹车三个动作;保养接口要完成加油、换胎两个动作,具体内容见接口文件,请吃饱了没事干的程序员主动携你们的类报名参加!”

速度接口如下:

  1. public interface SuDu
  2. {
  3. String start();
  4. String rise_Speed();
  5. String stop();
  6. }

  

保养接口如下:

  1. public interface BaoYang
  2. {
  3. String add_Oil();
  4. String feet();
  5. }

  

最终,有两个类报名参加,它们分别是:汽车类(car)和乌龟类(Oogway)

它们继承了项目经理要求的接口,并对接口进行了实现。代码如下:

汽车类:

  1. public class Car implements BaoYang,SuDu
  2. {
  3. public String start()
  4. {
  5. return "汽车现在开始启动了,轮胎在地面上磨起了阵阵黑烟,遮天蔽日。\n";
  6. }
  7. public String rise_Speed()
  8. {
  9. return "只见驾驶员咔咔换档,汽车速度很快升到了200KM/H,而且还在增加~!!\n";
  10. }
  11.  
  12. public String stop()
  13. {
  14. return "只听\"吱~~\"的一声,汽车险险停住,差点冲出跑道,压死一只蚂蚁。\n";
  15. }
  16. public String add_Oil()
  17. {
  18. return "汽车换胎的时候,静静地停在这里,什么也不想,油箱里灌注着我需要的血液……人生就应该这样\n";
  19. }
  20. public String feet()
  21. {
  22. return "工程师换完轮胎,我又可以蹦蹦跳跳冲上公路了!\n";
  23. }
  24. }

  

乌龟类:

  1. public class Oogway implements BaoYang,SuDu
  2. {
  3. public String start()
  4. {
  5. return "乌龟现在开始启动了,只见它爪子用力地刨啊刨,可咋就不动地方呢?\n";
  6. }
  7.  
  8. public String rise_Speed()
  9. {
  10. return "乌龟变身为忍者神龟,它开始两条腿向前冲了~\n";
  11. }
  12.  
  13. public String stop()
  14. {
  15. return "只见乌龟全身缩进龟壳,\"吱~~\"的一声,龟壳和地面摩擦,擦出阵阵火星!\n";
  16. }
  17.  
  18. public String add_Oil()
  19. {
  20. return "本龟四脚朝天,喝着新鲜的露珠,心里想着:能来份兔子肉就完美了~\n";
  21. }
  22.  
  23. public String feet()
  24. {
  25. return "剪剪龟指甲,再图个紫色的指甲油,今天一定要跑出新的世界纪录!\n";
  26. }
  27. }

  

因为直接实现了接口,项目经理就不用对它们进行严格的检查了。

竞速大赛如期举行,因为报名参加的只有两个类,项目经理直接完成了主程序(它甚至都没仔细看下这两个类,因为不需要)

主程序如下:

  1. public class c1
  2. {
  3. public static void main(String[] args)
  4. {
  5. // TODO Auto-generated method stub
  6. System.out.println("台上十分钟,请看:\n");
  7. System.out.println(race());
  8. System.out.println("-----------------------\n");
  9. System.out.println("台下十年功,请看:\n");
  10. System.out.println(rest());
  11. }
  12. public static String race()
  13. {
  14. SuDu s1,s2;
  15. String result="";
  16. s1=new Car();
  17. s2=new Oogway();
  18. result+=s1.start();
  19. result+=s2.start();
  20. result+=s1.rise_Speed();
  21. result+=s2.rise_Speed();
  22. result+=s1.stop();
  23. result+=s2.stop();
  24. return result;
  25. }
  26. public static String rest()
  27. {
  28. BaoYang s1,s2;
  29. String result="";
  30. s1=new Car();
  31. s2=new Oogway();
  32. result+=s1.add_Oil();
  33. result+=s2.add_Oil();
  34. result+=s1.feet();
  35. result+=s2.feet();
  36. return result;
  37. }
  38. }

  

程序执行结果……自己分析以后运行一下吧。。。

接口例_龟车赛跑_Java的更多相关文章

  1. HTML5 Canvas 龟羊赛跑

    从一张图上截取不同图块,动态显示在canvas上,形成赛跑的效果.完整代码图片下载请点击 https://files.cnblogs.com/files/xiandedanteng/turtleShe ...

  2. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  3. android listview综合使用演示样例_结合数据库操作和listitem单击长按等事件处理

    本演示样例说明: 1.自己定义listview条目样式,自己定义listview显示列数的多少,灵活与数据库中字段绑定. 2.实现对DB的增删改查,而且操作后listview自己主动刷新. 3.响应用 ...

  4. Java基础知识_毕向东_Java基础视频教程笔记(14-18集合框架)

    14天-01-集合框架集合类出现:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.数组与集合类同是容器,有何不同? 数组长度 ...

  5. Java基础知识_毕向东_Java基础视频教程笔记(5-10 面向对象)

    06天-05-面向对象(帮助文档的制作javadoc):java文档生成命令:javadoc -d filepatn demo.java   -author -version(可选)一个类中默认会有一 ...

  6. 接口测试 Postman 做接口自动化测试_入门篇

    可能是目前最好用的web接口调试工具 无需注册(注册后可多终端同步用例) 免费(每年付费$60可用云服务,30天免费试用) 保存历史记录 支持录制请求 基于Chrome的V8引擎,支持JS脚本(基本支 ...

  7. python_接口自动化测试_处理参数替换

    在进行自动化测试时,通常会存在A接口用例的返回值是B接口用例的入参这样的情况 可进行如下方式处理: step1.处理A用例时,在响应结果中提取出该数据的值,并赋给一变量,比如 exeId = res. ...

  8. 常用的函数式接口_Supplier和常用的函数式接口Supplier接口练习_求数组中元素最大值

    Supplier接口 package com.yang.Test.SupplierStudy; import java.util.function.Supplier; /** * 常用的函数式接口 * ...

  9. 04747_Java语言程序设计(一)_第1章_Java语言基础

    二进制0b开头 八进制0开头 十六进制0x开头 package com.jacky; public class Aserver { public static void main(String arg ...

随机推荐

  1. docker学习11-上传本地镜像到镜像仓库

    前言 在本地自己制作用过镜像后,上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境. 如果公开的话,别人也可以用你的镜像快速搭建环境,类似于 GitHub 本地代码上传到代码仓库,再从仓库拉取代 ...

  2. django modelformse批量编辑 查询学生班级成绩

    复习先知 关于三张表的编辑学生成绩在跨表查询的对象查询种,只能通过找到两张表的关联的对象,进行跨表,就是在一对多或多对多的模型找到他们俩的class_id或student_id在关联时,会通过他们找到 ...

  3. 借助模板类自动实现COM连接点接收器(Sink)

    本文的更新:借助模板类自动实现COM连接点接收器(Sink)更新 (2014-06-09 17:09) 最初的代码源自free2000fly的一个标准的 COM 连接点接收器(Sink)的实现, 使用 ...

  4. FastDFS 分布式文件系统(部署和运维)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/KamRoseLee/article/det ...

  5. AtCoder Grand Contest 033 题解

    传送门 我比赛的时候怕不是在睡觉啊-- \(A\ Darker\ and\ Darker\) 我是不是想得太复杂了--根本没必要像我这样做吧-- 首先问题可以转化成令\(p_{i,j}\)表示到\(( ...

  6. selenium 动态元素的定位

    对于有些元素每次点击都是动态的  即每次都是不一样的  对于这种元素我们可以采用与他相关的其他静态的元素定位 比如 iframe 这个元素的id是动态的 每次都在变化 第一种就是我们观察下 是整个都是 ...

  7. 异常EXCEPTION_HIJACK(0xe0434f4e)

    简介 EXCEPTION_HIJACK,值为0xe0434f4e.意思是CLR线程劫持异常.异常劫持是CLR在挂起线程进行垃圾收集的过程中抛出的.它的抛出是为了帮助停止后恢复执行.它定义在..\clr ...

  8. 洛谷P2504 [HAOI2006]聪明的猴子题解

    题目 记录悲伤 已知猴子的数量以及猴子跳的最大距离 已知数的数量以及树的坐标 最小生成树 每两棵树之间的距离需要枚举来计算 算出最大值之后再与n只猴子进行比较记录答案 需要注意 在使用最小生成树的时候 ...

  9. pycharm安装pytorch失败的问题

    在无GPU的情况下,打算安装pytorch跑几个demo练练手,但是pycharm发现总是失败,无法安装成功.错误显示如下: 无奈之下,只能够使用官方推荐的命令pip3安装,命令如下: pip3 in ...

  10. idea导入工程

    idea导入svn中的工程,一般是多模块的工程. 1 在idea中导入一个工程的目录,可以建立对应的文件夹 dy-task ,svn选择对应的分支导入 2 在dy-task同目录下建立其他目录 dy- ...