java的接口与实例
java web api接口开发实例

java web api接口开发实例Java Web API接口开发实例一、概述本文介绍了如何使用Java开发Web API接口。
Java Web API接口通常用于实现Web应用程序中的复杂业务逻辑,例如登录验证、注册用户以及其他相关的操作。
二、项目依赖为了测试Web API接口,我们需要准备一些额外的依赖包。
我们这里使用的是Jersey、Jackson和Jetty的最新稳定版本。
<dependency><groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-server</artifactId><version>2.26</version></dependency><dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet-core</artifactId> <version>2.26</version></dependency><dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-json-jackson</artifactId><version>2.26</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.12.v20180830</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-servlet</artifactId><version>9.4.12.v20180830</version></dependency>三、实现RESTful API接口我们首先需要创建一个类,来实现RESTful API接口。
java调用api接口实例

java调用api接口实例# 2. 使用JAVA调用API的实例## 2.1 简介API(Application Programming Interface),即应用程序接口,是一种特定的接口,它允许第三方软件(如Java)与另一个软件系统进行交互,以便更好地提供服务。
Java将API作为类库,可帮助开发人员更容易的进行开发。
## 2.2 实现### 2.2.1 准备工作首先,我们需要准备基本的环境:- Java开发环境(如Eclipse)- 用于调用API的第三方jar包### 2.2.2 使用API使用API的步骤一般如下:- 加载API:将jar包添加到Java项目中,使用Java类可以访问API。
- 初始化:初始化API的配置文件,设置必要的参数,以便API 可以正常工作。
- 调用API:通过调用API中的方法,获取要求的功能,完成任务。
### 2.2.3 编写实例下面是一个使用API的实例,以调用Amazon S3(Simple StorageService)的API进行数据处理。
```javapackage com.example.s3;import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials;import com.amazonaws.regions.Regions;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder; public class S3Example {// 访问keyprivate static final String ACCESS_KEY = 'XXXXXXXX';// 密钥private static final String SECRET_KEY = 'XXXXXXXX';public static void main(String[] args) {// 获取S3客户端AmazonS3 s3Xclient = getS3Client();// 使用客户端进行操作doSomething(s3Xclient);}// 获取S3客户端private static AmazonS3 getS3Client() {// 创建认证信息BasicAWSCredentials awsCreds = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);// 设置区域AWSCredentialsProvider awsCredsProvider = new AWSStaticCredentialsProvider(awsCreds);// 创建S3客户端AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(awsCredsProvider).withRegion(_EAST_1).build();return s3Client;}// 使用S3客户端private static void doSomething(AmazonS3 s3Client) {// TODO// 使用API调用S3相关的操作,如上传文件,下载文件,列出bucket等}}```该实例使用了Amazon S3的API,读取了访问key和密钥的信息,调用了接口获取S3客户端,并通过调用`doSomething()`方法实现了对S3的操作,如上传文件,下载文件,列出bucket等。
Java案例——猫与狗(接口版)

Java案例——猫与狗(接⼝版)⼀、需求:对猫跟狗进⾏训练,加⼊跳⾼功能,采⽤抽象类和接⼝实现,并创建测试类测试⼆、分析:1.定义接⼝(Jummping)成员⽅法跳⾼();/*定义跳⾼接⼝* */public interface Jumpping {public void jump();}2.定义抽象动物类(Animal)成员变量为姓名,年龄;⽆参有参构造⽅法;成员⽅法:get/set⽅法,eat()/*定义抽象类* */public abstract class Animal {private String name;private int age;//定义⽆参构造⽅法public Animal(){}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//定义有参构造⽅法public Animal(String name ,int age){this.age= age;= name;}//定义成员⽅法public abstract void eat();}3.定义具体猫类(cat),继承动物类,实现跳⾼接⼝⽆参有参构造⽅法;成员⽅法重写 eat()、jump();定义特有⽅法 play()/*定义具体猫类继承动物类* */public class Cat extends Animal implements Jumpping {public Cat() {}public Cat(String name,int age) {super(name,age);}//重写吃饭⽅法@Overridepublic void eat() {System.out.println("猫吃饭");}@Override//重写接⼝⽅法public void jump() {System.out.println("猫跳⾼");}//定义成员⽅法public void play() {System.out.println("玩耍");}}4.定义具体狗类(dog),继承动物类,实现跳⾼接⼝⽆参有参构造⽅法;成员⽅法重写 eat()、jump();定义特有⽅法 play()/*定义具体狗类,继承抽象动物类* */public class Dog extends Animal implements Jumpping { //定义⽆参构造⽅法public Dog() {}//定义有参构造⽅法public Dog(String name, int age) {super(name,age);}//定义成员⽅法public void play() {System.out.println("狗玩耍");}//重写接⼝⽅法@Overridepublic void jump() {System.out.println("狗跳⾼");}//重写吃饭⽅法@Overridepublic void eat() {System.out.println("狗吃⾁");}}5.定义测试类(AnimalDemo)测试/*动物测试类* */public class AnimalDemo {public static void main(String[] args) {//使⽤多态创建猫类对象// Animal a = new Cat();// = "⼩猫";// a.age = 18;// System.out.println( + a.age);// a.eat();// 向下转型,调⽤猫类特有⽅法// Cat c = (Cat) a;// c.jump();// c.play();// 创建对象调⽤猫类Cat c=new Cat("加菲",18);System.out.println(c.getName()+c.getAge());c.eat();c.jump();c.play();System.out.println("--------------------------------------------"); // 创建对象调⽤猫类Dog d = new Dog();d.setName("⼩狗");d.setAge(180);System.out.println(d.getName()+d.getAge());d.eat();d.jump();d.play();}}。
java调用sdk接口实例 -回复

java调用sdk接口实例-回复如何在Java中调用SDK接口实例在现今的软件开发领域,软件开发工程师可以使用各种软件开发工具和库来简化和加速开发过程。
其中一个重要的工具是软件开发者工具包(Software Development Kit,简称SDK)。
SDK是一组开发工具、库和文档,用于帮助开发者在特定的平台或框架上构建应用程序。
在本文中,我们将介绍如何在Java中调用SDK接口实例。
我们将从安装所需的环境开始,然后逐步实现调用SDK接口的步骤。
对于本例,我们将使用一个名为"ABC SDK"的虚拟SDK作为具体示例。
一. 环境准备在开始之前,我们需要先确保系统环境已经安装了Java开发工具包(Java Development Kit,简称JDK)。
如果您尚未安装JDK,您可以通过访问官方网站并根据您的操作系统下载并安装适用于您的版本。
完成安装后,您可以打开终端或命令提示符窗口,运行以下命令来验证JDK 的安装是否成功:java -version如果命令能够成功执行并显示Java版本信息,则表示JDK已经成功安装。
二. 下载并导入SDK包在继续之前,您需要从ABC SDK的官方网站或其他可信的来源下载SDK 包。
通常,SDK包会作为一个压缩文件(例如.zip或.tar.gz)提供。
下载并解压缩SDK包后,您会得到一个目录,其中包含了SDK的所有文件和目录。
接下来,我们需要在Java项目中导入SDK包。
您可以使用IDE(集成开发环境)的导入功能,或者手动将SDK包中的文件复制到Java项目的源代码根目录中。
三. 创建Java类现在,我们已经准备好开始编写Java代码来调用SDK接口。
创建一个新的Java类(例如Main.java)并在编辑器中打开。
首先,我们需要导入SDK类库。
根据SDK供应商提供的文档和示例代码,查找并导入所需的类和接口。
通常,您需要使用`import`关键字来导入类,例如:javaimport com.abc.sdk.SDKClass;四. 实例化SDK对象在调用SDK接口之前,我们需要先实例化SDK对象。
基于JAVA的火车票价信息接口调用代码实例

基于JA V A的火车票价信息接口调用代码实例代码描述:基于JA V A的火车票价信息接口调用代码实例代码平台:聚合数据import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;/***火车时刻表调用示例代码-聚合数据*在线接口文档:/docs/79**/public class JuheDemo {public static final String DEF_CHATSET = "UTF-8";public static final int DEF_CONN_TIMEOUT = 30000;public static final int DEF_READ_TIMEOUT = 30000;public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) Appl eWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//配置您申请的KEYpublic static final String APPKEY ="*************************";//1.列次查询public static void getRequest1(){String result =null;String url ="/onebox/train/query";//请求接口地址Map params = new HashMap();//请求参数params.put("train","");//车次号,如:D3010params.put("key",APPKEY);//应用APPKEY(应用详细页查询)try{result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object. get("reason"));}} catch(Exception e) {e.printStackTrace();}}//2.站到站检索public static void getRequest2(){String result =null;String url ="/onebox/train/query_ab";//请求接口地址Map params = new HashMap();//请求参数params.put("from","");//出发站名称,如:北京params.put("to","");//到达站名称,如:上海params.put("key",APPKEY);//应用APPKEY(应用详细页查询)try{result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object. get("reason"));}} catch(Exception e) {e.printStackTrace();}}public static void main(String[] args) {}/**** @param strUrl 请求地址* @param params 请求参数* @param method 请求方法* @return 网络请求字符串* @throws Exception*/public static String net(String strUrl, Map params,String method) th rows Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try{StringBuffer sb = new StringBuffer();if(method==null|| method.equals("GET")){strUrl = strUrl+"?"+urlencode(params);}URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();if(method==null|| method.equals("GET")){conn.setRequestMethod("GET");}else{conn.setRequestMethod("POST");conn.setDoOutput(true);}conn.setRequestProperty("User-agent", userAgent);conn.setUseCaches(false);conn.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if(params!= null&& method.equals("POST")) {try{DataOutputStream out = new DataOutputStream(conn.get OutputStream());out.writeBytes(urlencode(params));} catch(Exception e) {// TODO: handle exception}}InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is, DEF_CH ATSET));String strRead = null;while((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch(IOException e) {e.printStackTrace();} finally{if(reader != null) {reader.close();}if(conn != null) {conn.disconnect();}}return rs;}//将map型转为请求参数型public static String urlencode(Map<String,Object>data) {StringBuilder sb = new StringBuilder();for(Map.Entryi : data.entrySet()) {try{sb.append(i.getKey()).append("=").append(URLEncoder.enc ode(i.getValue()+"","UTF-8")).append("&");} catch(UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}}。
java中的接口与继承,接口的例子讲解

java中的接⼝与继承,接⼝的例⼦讲解extends 继承类;implements 实现接⼝。
简单说:1.extends是继承⽗类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.JAVA中不⽀持多重继承,但是可以⽤接⼝来实现,这样就要⽤到implements,3.继承只能继承⼀个类,但implements可以实现多个接⼝,⽤逗号分开就⾏了 ,⽐如 class A extends B implementsC,D,Eextends和implements有什么不同?对于class⽽⾔,extends⽤于(单)继承⼀个类(class),⽽implements⽤于实现⼀个接⼝(interface)。
interface的引⼊是为了部分地提供多继承的功能。
在interface中只需声明⽅法头,⽽将⽅法体留给实现的class来做。
这些实现的class的实例完全可以当作interface的实例来对待。
在interface之间也可以声明为extends(多继承)的关系。
注意:⼀个interface可以extends多个其他interface。
接⼝实例:例⼦1:⼀共包括4个类,分别是CAR.java,BigCar.java,TestCar.java,CarInterface.java。
CAR.java:声明⼀个接⼝,不实现⽅法,只声明⽅法,接⼝不能实例化。
package com.su.callback;publicinterface CAR {void start();void stop();}BigCar.java:⽤BigCar类实现接⼝CAR,实现它的⽅法,也就是写程序结构体。
BigCar是能够实例化的,BigCar的对象是Car型的。
当你需要调⽤接⼝CAR的⽅法的时候,需要⽤CAR的对象来调⽤CAR的⽅法,但是CAR⼜不能实例化,我们就可以⽤实现了CAR的BigCar的对象来调⽤CAR 的⽅法。
Java面向对象之接口interface入门实例

Java⾯向对象之接⼝interface⼊门实例⼀、基础概念 (⼀)接⼝可以简单的理解为,是⼀个特殊的抽象类,该抽象类中的⽅法都是抽象的。
接⼝中的成员有两种:1.全局常量 2.抽象⽅法 定义接⼝⽤关键字interface,接⼝中的成员都⽤固定的修饰符public来修饰。
(⼆)接⼝的特点: 1、接⼝不可以实例化。
2、接⼝的⼦类必须覆盖接⼝中的所有抽象⽅法后,才可以实例化。
否则该⼦类是抽象类。
3、接⼝是⽤来被实现的。
(三)接⼝解决的问题: 1.因为多继承调⽤的不确定性,java中是不直接⽀持多继承的,但可以通过接⼝来解决,将多继承转换成多实现。
2.因为⼦类具备所属的⽗类体系的基本功能后,还想扩展⼀些其他功能。
可以通过接⼝来完成。
3.避免单继承的局限性。
⼀个类继承另⼀个类的同时,还可以实现多个接⼝。
(四)接⼝的思想: 1.接⼝的出现扩展了功能。
2.接⼝的出现其实就是暴露出来的规则。
3.接⼝的出现降低了耦合性。
(⽤于解耦) 4.接⼝的出现,⼀⽅在使⽤接⼝,⼀⽅在实现接⼝。
(五)类与接⼝的区别: 1.类与类之间的关系是继承关系。
2.类与接⼝之间的关系是实现关系。
3.接⼝与接⼝的关系是继承关系,⽽且可以多继承。
4.抽象类中可以定义抽象和⾮抽象⽅法。
⼦类可以直接使⽤,或者覆盖使⽤。
接⼝中定义都是抽象⽅法,必须实现后才能使⽤。
5.类⽤于描述是事物的共性基本功能,接⼝⽤于定义的是事物的额外功能。
⼆、实例代码(⼀) 1.定义接⼝⼦类SubInter_1,进⾏接⼝InterA的实现 2.定义接⼝⼦类SubInter_2,进⾏接⼝InterA接⼝和InterB的多实现 3.定义接⼝⼦类SubInter_3,继承Fu类还进⾏接⼝InterA的实现 3.定义接⼝⼦类SubInter_4,继承Fu类还进⾏接⼝InterA和InterB的多实现1//定义⽗类Fu2class Fu3 {4public void show1()5 {6 System.out.println("Fu show1 ......");7 }8 }910//定义接⼝InterA11interface InterA12 {13public static final int num1 = 4; //全局常量14public abstract void show2(); //抽象⽅法15 }1617//定义接⼝InterB18interface InterB19 {20public static final int num2 = 6;21public abstract void show3();21public abstract void show3();22 }2324//定义接⼝⼦类SubInter_1,进⾏实现25class SubInter_1 implements InterA//⼦类SubInter1实现 InterA接⼝26 {27public void show2()28 {29 System.out.println("SubInter_1 InterA show2 ......");30 }31 }3233//定义接⼝的⼦类SubInter_2,进⾏多实现34class SubInter_2 implements InterA,InterB//⽤⼦类SubInter2 多实现 InterA接⼝和Inter接⼝ 35 {36public void show2()37 {38 System.out.println("SubInter_2 InterA show2 ......");39 }40public void show3()41 {42 System.out.println("SubInter_2 InterB show3 ......");43 }44 }454647//SubInter_3类继承了Fu类的基本功能,还实现了InterA接⼝的基本功能。
java runnable 实例

一、介绍Java是一种面向对象的编程语言,拥有强大的可移植性和跨评台性,因此被广泛应用于各种软件开发领域。
在Java中,可以使用Runnable接口来创建多线程应用程序,该接口定义了一个通过Thread类调度的任务。
二、Runnable接口的定义Runnable接口位于ng包中,它是一个函数式接口,只包含一个无参数的run方法,用于定义线程要执行的任务。
任何实现了Runable接口的类都可以被Thread类实例化,因此可以被当做线程来执行。
三、Runnable接口的使用要使用Runnable接口,需要完成以下几个步骤:1. 创建一个实现Runnable接口的类,重写run()方法,并在其中实现线程的任务。
2. 实例化Runnable接口的实现类,并将其作为参数传递给Thread 类的构造函数。
3. 调用线程的start()方法启动线程。
四、示例代码以下是一个简单的Java程序,演示了如何使用Runnable接口创建一个多线程应用程序:```javapublic class MyRunnable implements Runnable {public void run() {for (int i = 0; i < 5; i++) {System.out.println("当前线程: " +Thread.currentThread().getName() + ", i = " + i);}}public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread1 = new Thread(myRunnable);Thread thread2 = new Thread(myRunnable);thread1.start();thread2.start();}}```在这个示例中,首先创建了一个实现了Runnable接口的MyRunnable类,重写了其中的run()方法,并在其中定义了线程要执行的任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、定义Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口定义的一般形式为:[访问控制符]interface <接口名> {类型标识符final 符号常量名n = 常数;返回值类型方法名([参数列表]);…}二、接口的特点1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法4、接口中没有构造方法,不能被实例化5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口6、Java接口必须通过类来实现它的抽象方法7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.三、接口的用法1、精简程序结构,免除重复定义比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。
举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。
下图是分别定义鸟类和昆虫类,其都有飞行的方法。
下图定义了接口,其类图如下:实现代码如下:[java]view plaincopyprint?1. interface Flyanimal{2. void fly();3. }4. class Insect {5. int legnum=6;6. }7. class Bird {8. int legnum=2;9. void egg(){};10. }11. class Ant extendsInsect implements Flyanimal {12. public void fly(){13. System.out.println("Ant can fly");14. }15. }16. classPigeon extends Bird implements Flyanimal {17. public void fly(){18. System.out.println("pigeon can fly");19. }20. public void egg(){21. System.out.println("pigeon can lay eggs ");22. }23. }24. public classInterfaceDemo{25. public static void main(String args[]){26. Ant a=new Ant();27. a.fly();28. System.out.println("Ant's legs are"+ a.legnum);29. Pigeon p= new Pigeon();30. p.fly();31. p.egg();32. }33. }程序运行结果:Ant can flyAnt'slegs are 6pigeon can flypigeon can lay eggs二、拓展程序功能,应对需求变化。
假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如下:理论上,当然可以对每个不同身份的人各定义一个对应的类,并实现各自的方法,但是观察这写类,可以归纳出其有一个共同的模板,即“人”的“食、宿”问题。
这时候,就可以发挥接口的功能了。
实现代码如下:[java]view plaincopyprint?1. interface Person{2. void eat();3. void sleep();4. }5.6. class Student implements Person{7. public void eat(){8. System.out.println("学生去食堂吃饭!");9. }10. public void sleep(){11. System.out.println("学生回寝室睡觉!");12. }13. }14.15. class Teacher implements Person{16. public void eat(){17. System.out.println("教师去教工餐厅吃饭!");18. }19. public void sleep(){20. System.out.println("教师回学校公寓睡觉!");21. }22. }23. class Parents implements Person{24. public void eat(){25. System.out.println("家长去招待所饭馆吃饭!");26. }27. public void sleep(){28. System.out.println("家长回招待所睡觉!");29. }30. }31.32. public class PersonInterface{33. public static void main(String[] args)34. {35. Person p=new Student();36. p.eat();37. p.sleep();38. p=new Teacher();39. p.eat();40. p.sleep();41. p=new Parents();42. p.eat();43. p.sleep();44. }45. }程序执行结果:学生去食堂吃饭!学生回寝室睡觉!教师去教工餐厅吃饭!教师回学校公寓睡觉!家长去招待所饭馆吃饭!家长回招待所睡觉!现在需要添加一些功能,即现在需要添加“外宾、上级领导”两类角色,并且以后工具需要还要添加相应的身份角色的人进来,此时,只需要根据需要添加“外宾”类、“领导”类,而主类仍然可以拿来就用,无需进行更多的修改。
此时就可以显示出接口的作用了。
在上面的程序中添加如下两个类即可。
[java]view plaincopyprint?1. class Foreign implements Person{2. publicvoid eat(){3. System.out.println("外宾去酒店吃饭!");4. }5. public void sleep(){6. System.out.println("外宾回酒店睡觉!");7. }8. }9.10. class Leader implements Person{11. publicvoid eat(){12. System.out.println("领导去宾馆吃饭!");13. }14. public void sleep(){15. System.out.println("外宾回宾馆睡觉!");16. }17. }而主函数中用法仍然一样。
下面给出完整的代码:[java]view plaincopyprint?1. interfacePerson{2. void eat();3. void sleep();4. }5.6. class Studentimplements Person{7. public void eat(){8. System.out.println("学生去食堂吃饭!");9. }10. public void sleep(){11. System.out.println("学生回寝室睡觉!");12. }13. }14.15. class Teacherimplements Person{16. public void eat(){17. System.out.println("教师去教工餐厅吃饭!");18. }19. public void sleep(){20. System.out.println("教师回学校公寓睡觉!");21. }22. }23. class Parents implements Person{24. publicvoid eat(){25. System.out.println("家长去招待所饭馆吃饭!");26. }27. public void sleep(){28. System.out.println("家长回招待所睡觉!");29. }30. }31. class Foreign implements Person{32. publicvoid eat(){33. System.out.println("外宾去酒店吃饭!");34. }35. public void sleep(){36. System.out.println("外宾回酒店睡觉!");37. }38. }39.40. class Leader implements Person{41. publicvoid eat(){42. System.out.println("领导去宾馆吃饭!");43. }44. public void sleep(){45. System.out.println("领导回宾馆睡觉!");46. }47. }48.49. public class PersonInterface{50. public static void main(String[] args)51. {52. Person p=new Student();53. p.eat();54. p.sleep();55. p=new Teacher();56. p.eat();57. p.sleep();58. p=new Parents();59. p.eat();60. p.sleep();61. p=new Foreign();62. p.eat();63. p.sleep();64. p=new Leader();65. p.eat();66. p.sleep();67. }68. }程序执行结果:学生去食堂吃饭!学生回寝室睡觉!教师去教工餐厅吃饭!教师回学校公寓睡觉!家长去招待所饭馆吃饭!家长回招待所睡觉!外宾去酒店吃饭!外宾回酒店睡觉!领导去宾馆吃饭!领导回宾馆睡觉!举例二:用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。