1需求是
//公司招员工,要求会讲中、英、法、日四国语言,同时还很会编程的员工。
这时候,我们先定义一个接口,实现接口中的方法我们就认为满足
//公司招员工,要求会讲中、英、法、日四国语言,同时还很会编程的员工。
//定义一个接口类,必须五个方法实现
public interface Jobskill {void speakChinese();//会说中文void speakEnglish();//会说英文void speakJapanese();//会说日文void speakFrench();//会说法语void goodCoding();//会一些技能
}
好了,满足这个需求你就能来我们公司了,这时候来了一个员工交歌谣,只会中文
//定义一个工人,他会编程和语文public class Worker {public void goodCoding(){System.out.println("我叫歌谣,我编程很厉害的");}public void speakChinese(){System.out.println("我只会说中文呢,能不能请我啊");}}
但是这个人编程很厉害,没办法,公司挺想要他的,工资要的也低
直接招聘这个员工,报错了,我天,很显然,这个员工不符合要求,没办法,开个挂把
public class Assist extends Worker implements Jobskill{public void speakJapanese() {System.out.println("妈妈再也不用担心我的日语了");}public void speakFrench() {System.out.println("哪里不会就点哪里,这样法语也随便搞定了");}public void speakEnglish() {System.out.println("So Easy.");}}
public class WorkerAssit implements Jobskill{//这个人有自己的助理翻译,这里是使用了组合的方式private Worker worker;//在构造方法中传进来public WorkerAssit(Worker worker){this.worker = worker;}public void goodCoding() {worker.goodCoding();}public void speakChinese() {//worker会说,直接用workerworker.speakChinese();}public void speakEnglish() {//英语他不会说,这就要助手出马翻译了System.out.println("我是他的翻译,他说 Hello World.");}public void speakJapanese() {//日语他也不会说,这还是要助手出马翻译了System.out.println("我说说日语,谢谢");}public void speakFrench() {//每错,他英语也不行System.out.println("He can say English too.");}}
最后测试
public class Test {//招聘员工public static void hireWorker(Jobskill worker){System.out .println("恭喜你,你被录用了,展示一下你的技能吧");System.out .println("===============================");worker.speakChinese();worker.speakEnglish();worker.speakFrench();worker.speakJapanese();worker.goodCoding();}public static void main(String[] args){//我是个只会说中文的工人 ,但我编程好Worker me = new Worker();Assist bbg = new Assist();hireWorker(bbg);System.out.println("*****************\r\n");//这个自带助理的,是使用了组合的方式,是对象的适配模式WorkerAssit gfs = new WorkerAssit(me);hireWorker(gfs);//hireWorker(me);//直接招聘是不行了// 以上代码为初始状态,后面的代码是后面根据需求增加的}}
运行结果
本文参考纯属练手,建议学完接口等知识练手,反复练习,有点意思