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

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

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

速度接口如下:

public interface SuDu
{
String start();
String rise_Speed();
String stop();
}

  

保养接口如下:

public interface BaoYang
{
String add_Oil();
String feet();
}

  

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

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

汽车类:

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

  

乌龟类:

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

  

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

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

主程序如下:

public class c1
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println("台上十分钟,请看:\n");
System.out.println(race());
System.out.println("-----------------------\n");
System.out.println("台下十年功,请看:\n");
System.out.println(rest());
}
public static String race()
{
SuDu s1,s2;
String result="";
s1=new Car();
s2=new Oogway();
result+=s1.start();
result+=s2.start();
result+=s1.rise_Speed();
result+=s2.rise_Speed();
result+=s1.stop();
result+=s2.stop();
return result;
}
public static String rest()
{
BaoYang s1,s2;
String result="";
s1=new Car();
s2=new Oogway();
result+=s1.add_Oil();
result+=s2.add_Oil();
result+=s1.feet();
result+=s2.feet();
return result;
}
}

  

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

接口例_龟车赛跑_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 gitlab-runner的安装

    参考: Run GitLab Runner in a container 前面介绍了gitlab-ce的安装,下面是gitlab-runner的安装,同样还是安装docker版本. 1.下载 dock ...

  2. ZABBIX监控TCP连接状态

    一.获取监控数据 # /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' LISTEN ESTABLISHED T ...

  3. UE4 Keynote 1

    [UE4 Keynote 1] 1.U3D中的Project,在UE4中叫 ContentBrowser,中文名叫“内容浏览器” 最多可以打开4个ContentBrowser,通过 “窗口” -> ...

  4. 重复的DNA序列[哈希表] LeetCode.187

    所有 DNA 由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助. 编写一个函数 ...

  5. func_get_args call_user_func_array

    <?php //call_user_func_array.php function test($arg1,$arg2) { $t_args = func_get_args(); $t_resul ...

  6. offsetHeight在不同的浏览器下取值不同

    今天在调js的时候,发现firefox和IE在取document.body.offsetHeight的值的时候结果不一样.上网查了一下,发现如下结果:   这四种浏览器分别为IE(Internet E ...

  7. Sublime Text2中的快捷方式及html各种标签(待完善)

    快捷方式 1.xhtml+tab 2.自动补全标签 Alt + .  补全标签 标签 1.<p>段落标签 ,前后换行 <h1.2.3.4.5>标题标签 h1最大,一级标题 2. ...

  8. matlab-层次分析法

    层次分析法(AHP)是把问题条理化.层次化,构造出一个有层次的结构模型的方法. 比如要选择旅游地,有3个选择方案,苏杭.北戴河和桂林.选择过程需要考虑多个因素,比如景色.费用.居住.饮食和旅途. 1. ...

  9. React / Ant Design Pro 实现Canvas画布实时自适应

    如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...

  10. ESA2GJK1DH1K基础篇: 阿里云物联网平台: 云平台显示单片机采集的温湿度数据,控制设备继电器(基于GPRS模块,AT指令TCP_MQTT通信)

    实现的功能 上一节是使用的Wi-Fi模块连接的阿里云平台,这节呢咱用GPRS连接. 阿里云的设备配置还是按照上一节的,有个温度,有个湿度. 测试 一,打开单片机程序 二,根据自己的修改,然后下载进去单 ...