Java 接口回调

实验步骤:

1)设计一个程序需要用到的类和接口,分析类和接口之间的关系。

2)创建一个抽象类Worker,有非抽象方法aimAll()

3)创建一个接口Info,有四个抽象方法

4)创建三个子类Teacher,Doctor,Police继承接口和抽象类,实现接口类中的四个方法

5)创建主类Test1,在主类中定义三个参数为接口类型的方法,通过实现接口的类的对象回调重写的接口方法,实现相应功能。

6)运行程序,检验输出结果的正确性。

设计思路:

    创建一个一个抽象类Worker,有非抽象方法aimAll(),创建一个接口Info,有四个抽象方法,创建三个子类Teacher,Doctor,Police继承接口和抽象类,分别都实现接口类中的四个方法job(),position(),serviceObject(),aim(),创建主类Test1,在主类中定义三个参数为接口类型的方法,通过实现接口的类的对象回调重写的接口方法,实现相应功能,同时加入了屏幕输入,根据屏幕输入的结果判断执行三个子类中哪一个的方法调用。

package shiyanbaogao_three;

public abstract class Worker {//定义一个抽象类
	public void aimAll() {//抽象类的aimAll方法
		System.out.println("共同宗旨:为人民服务");
	}
}
package shiyanbaogao_three;

public interface Info {//定义接口Info
	public abstract void job();//接口中的四个抽象方法
	public abstract void aim();
	public abstract void position();
	public abstract void serviceObject();
}
package shiyanbaogao_three;

public class Docter extends Worker implements Info {//继承抽象类和接口
	public void job() {//实现四个接口中的抽象方法
		System.out.println("工作:医生");
	}
	public void position() {
		System.out.println("办公地点:医院");
	}
	public void serviceObject() {
		System.out.println("服务对象:病患");
	}
	public void aim() {
		System.out.println("宗旨:救死扶伤");
	}
}
package shiyanbaogao_three;

public class Police extends Worker implements Info {//继承抽象类和接口
	public void job() {//实现四个接口中的抽象方法
		System.out.println("工作:警察");
	}
	public void position() {
		System.out.println("办公地点:警察局");
	}
	public void serviceObject() {
		System.out.println("服务对象:人民群众");
	}
	public void aim() {
		System.out.println("宗旨:惩恶扬善");
	}
}
package shiyanbaogao_three;

public class Teacher extends Worker implements Info {//继承抽象类和接口
	public void job() {//实现四个接口中的抽象方法
		System.out.println("工作:教师");
	}
	public void position() {
		System.out.println("办公地点:学校");
	}
	public void serviceObject() {
		System.out.println("服务对象:学生");
	}
	public void aim() {
		System.out.println("宗旨:教书育人");
	}
}
package shiyanbaogao_three;

import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入你想了解的职业(警察/医生/教师)");
		String answer=scanner.nextLine();//屏幕输入获取职业名称
		if(answer.equals("警察")) {//这里是判断输入的结果是否是警察
			Info police=new Police();//声明父接口变量police,指向子类对象
			Worker police2=new Police();//声明父类变量police2,指向子类对象
			police.job();//接口回调
			police2.aimAll();//调用父类方法
			police.aim();//接口回调
			police.position();//接口回调
			police.serviceObject();//接口回调
		}
		else if(answer.equals("教师")) {//这里是判断输入的结果是否是教师
			Info teacher=new Teacher();//声明父接口变量teacher,指向子类对象
			Worker teacher2=new Teacher();//声明父类变量teacher2,指向子类对象
			teacher.job();//接口回调
			teacher2.aimAll();//调用父类方法
			teacher.aim();//接口回调
			teacher.position();//接口回调
			teacher.serviceObject();//接口回调
		}
		else {
			Info docter=new Docter();//声明父接口变量doctor,指向子类对象
			Worker docter2=new Docter();//声明父类变量doctor2,指向子类对象
			docter.job();//接口回调
			docter2.aimAll();//调用父类方法
			docter.aim();//接口回调
			docter.position();//接口回调
			docter.serviceObject();//接口回调
		}
	}

}

结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cwn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值