zoukankan      html  css  js  c++  java
  • 接口例_龟车赛跑_Java

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

      

    乌龟类:

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

      

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

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

    主程序如下:

    public class c1
    {
    	public static void main(String[] args)
    	{
    		// TODO Auto-generated method stub
    		System.out.println("台上十分钟,请看:
    ");
    		System.out.println(race());
    		System.out.println("-----------------------
    ");
    		System.out.println("台下十年功,请看:
    ");
    		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;
    	}
    }
    

      

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

  • 相关阅读:
    BZOJ 2299 向量
    BZOJ 1237 配对
    BZOJ 2226 LCMSum
    BZOJ 1876 SuperGCD
    查漏补缺:C++STL简述(容器部分)
    查漏补缺:Linux进程与线程的区别
    码海拾遗:常用的其中排序算法
    码海拾遗:简述C++(一)
    码海拾遗:简单的链表类
    码海拾遗:位运算实现加减乘除
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/11002833.html
Copyright © 2011-2022 走看看