案例需求:
教练员:
乒乓球教练员,篮球教练员
运动员:
乒乓球运动员,篮球运动员
要求:乒乓球教练员和乒乓球运动员必须要学习必要的英语。
需求分析:
篮球,乒乓球教练员都是教练员,而且教练员不是具体的哪一类,所以是抽象类。
篮球,乒乓球运动员都是运动员,而且运动员不是具体的哪一类,所以也是抽象类。
教练员和运动员都是人,所以需要定义一个抽象父类人类。
由于特定了一些人需要学外语,所以定义一个英语接口功能。
具体实现如下:
接口:
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
篮球教练教授运动员打篮球!
篮球教练吃篮球教练的饭!
人都要睡觉!