接口例_龟车赛跑_Java
2024-09-06 16:07:13
此例演示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;
}
}
程序执行结果……自己分析以后运行一下吧。。。
最新文章
- SQL 数字分割的字符串
- JVM内存模型和性能优化 转
- Html==>;>;一些经典
- folly
- JAVA 创建类,使用类
- Structs 原理图
- 简单登陆UI设计
- Unity中Mecanim工作流
- mysql的联合,连接,子查询
- Spring知识点回顾(05)bean的初始化和销毁
- Java异常处理-----java异常体系
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
- XML转换为对象/Javabean
- 用C++的 new 代替 C 的 malloc 进行内存分配
- swift能干什么,不能干什么及相关概念
- 20165207 Exp0 Kali安装
- nginx反向代理proxy_set_header自定义header头无效
- 【LeetCode】164. Maximum Gap (2 solutions)
- django2.0实现数据详情页展示的流程
- UWP开发入门(七)——下拉刷新
热门文章
- MySQL数据物理备份之tar打包备份
- MySQL的select详细介绍
- Nginx Rewrite相关功能-ngx_http_rewrite_module模块指令
- Jupyter notebook 添加或删除内核
- Sigmoid函数与Softmax函数的理解
- JDBC连接池的九种查询
- Oracle ORA-00923: FROM keyword not found where expected
- (HK1-2)海康相机直接连接电脑不经过路由器设置
- Bring JavaScript to your Java enterprise with Vert.x
- Android Studio 星云常用配置工具箱