java-接口之运动员教练员综合案例

来源:互联网 发布:数据备份的管理规范 编辑:程序博客网 时间:2024/04/27 21:30

案例需求:

教练员:

             乒乓球教练员,篮球教练员

运动员:

            乒乓球运动员,篮球运动员

要求:乒乓球教练员和乒乓球运动员必须要学习必要的英语。


需求分析:

篮球,乒乓球教练员都是教练员,而且教练员不是具体的哪一类,所以是抽象类。

篮球,乒乓球运动员都是运动员,而且运动员不是具体的哪一类,所以也是抽象类。

教练员和运动员都是人,所以需要定义一个抽象父类人类。

由于特定了一些人需要学外语,所以定义一个英语接口功能。

具体实现如下:

接口:

package com.hause.day10;public interface SpeakEnglish {public void speak();}

人类:

package com.hause.day10;public abstract class Person {private String name;private int age;public abstract void eat();public void sleep(){System.out.println("人都要睡觉!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void show(){System.out.println("姓名:"+name+"年龄:"+age);}    }

教练员类:

package com.hause.day10;public abstract class Coach extends Person{public abstract void teach();}
运动员类:

package com.hause.day10;public abstract class Player extends Person {    public abstract void study();}
乒乓教练员类:

package com.hause.day10;public class PingPangCoach extends Coach implements SpeakEnglish{public void speak() {System.out.println("乒乓球教练交运动员打乒乓球的同时还要学习英语!");}public void teach() {System.out.println("乒乓球教练交运动员打乒乓球!");}public void eat() {System.out.println("乒乓球教练吃乒乓球教练的饭!");}}

篮球教练员类:

package com.hause.day10;public class BasketCoach extends Coach {public void teach() {System.out.println("篮球教练教授运动员打篮球!");}public void eat() {System.out.println("篮球教练吃篮球教练的饭!");}}

乒乓运动员类:

package com.hause.day10;public class PingPang extends Player implements SpeakEnglish {public void study() {System.out.println("乒乓球运动员学习打乒乓球!");}public void eat() {System.out.println("乒乓球运动员吃乒乓球的饭!");}public void speak() {System.out.println("乒乓球运动员学习打乒乓球时候还要学习英语!");}}

篮球运动员类:

package com.hause.day10;public class Basketball extends Player{public void study() {System.out.println("篮球球运动员学习打篮球球!");}public void eat() {System.out.println("篮球球运动员吃篮球球的饭!");}}

测试类:

package com.hause.day10;/* *具体类调用  *   */public class Main {    public static void main(String[] args) {//创建乒乓球与动员对象PingPang pp = new PingPang();pp.setName("李春男");pp.setAge(25);pp.show();pp.eat();pp.study();pp.sleep();pp.speak();System.out.println("************************");//创建乒乓球教练对象PingPangCoach ppp = new PingPangCoach();ppp.setName("河南科技大学");ppp.setAge(26);ppp.show();ppp.eat();ppp.teach();ppp.sleep();ppp.speak();System.out.println("******************************************");//创建篮球运动员对象Basketball bb = new Basketball();bb.setName("杨莉");bb.setAge(22);bb.show();bb.study();bb.eat();bb.sleep();System.out.println("******************************************");    //创建篮球教练对象BasketCoach bc = new BasketCoach();bc.setName("杨莉");bc.setAge(22);bc.show();bc.teach();bc.eat();bc.sleep();}}

输出:

姓名:李春男年龄:25
乒乓球运动员吃乒乓球的饭!
乒乓球运动员学习打乒乓球!
人都要睡觉!
乒乓球运动员学习打乒乓球时候还要学习英语!
************************
姓名:河南科技大学年龄:26
乒乓球教练吃乒乓球教练的饭!
乒乓球教练交运动员打乒乓球!
人都要睡觉!
乒乓球教练交运动员打乒乓球的同时还要学习英语!
******************************************
姓名:杨莉年龄:22
篮球球运动员学习打篮球球!
篮球球运动员吃篮球球的饭!
人都要睡觉!
******************************************
姓名:杨莉年龄:22
篮球教练教授运动员打篮球!
篮球教练吃篮球教练的饭!
人都要睡觉!