问题:
教练和运动员案例:
乒乓球运动员和篮球运动员,乒乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。请用所学知识分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。
分析得到:
运行截图:
实验代码:
package 实验.作业3;
interface LearnEnglish{ //学习英语的接口,用于ppPlayer和ppCoach的实现
public abstract void speak();
}
abstract class People { //定义人抽象类
private String name;
private int age;
public People(){};
public People(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName() {
return name;
}
public int getAge(){
return age;
}
public abstract void eat();
public void sleep(){
System.out.println("sleeping...");
}
}
abstract class Player extends People{ //定义运动员抽象类
public Player(){}
public Player(String name,int age){
super(name,age);
}
public abstract void study();
}
abstract class Coach extends People{ //定义教练抽象类
public Coach(){};
public Coach(String name,int age){
super(name,age);
}
public abstract void teach();
}
class ppPlayer extends Player implements LearnEnglish{
//定义ppPlayer继承运动员类,实现LearnEnglish接口
public ppPlayer(){};
public ppPlayer(String name,int age){
super(name,age);
}
@Override
public void eat(){
System.out.println("ppPlayer is eating...");
}
@Override
public void sleep(){
System.out.println("ppPlayer is sleeping...");
}
@Override
public void study() {
System.out.println("ppPlayer is studying English...");
}
public void speak(){
System.out.println("ppPlayer is speaking English...");
}
}
class lqPlayer extends Player{
//定义lqPlayer继承Player类
public lqPlayer(){};
public lqPlayer(String name,int age){
super(name,age);
}
@Override
public void eat(){
System.out.println("lqPlayer is eating...");
}
@Override
public void sleep(){
System.out.println("lqPlayer is sleeping...");
}
@Override
public void study(){
System.out.println("lqPlayer is studying basketball...");
}
}
class ppCoach extends Coach implements LearnEnglish{
//定义ppCoach继承教练类,实现LearnEnglish接口
public ppCoach(){};
public ppCoach(String name,int age){
super(name,age);
}
@Override
public void eat(){
System.out.println("ppCoach is eating...");
}
@Override
public void sleep(){
System.out.println("ppCoach is sleeping...");
}
@Override
public void teach(){
System.out.println("ppCoach is teaching pingpang...");
}
public void speak(){
System.out.println("ppCoach is speaking English...");
}
}
class lqCoach extends Coach{
public lqCoach(){};
public lqCoach(String name,int age){
super(name,age);
}
@Override
public void eat(){
System.out.println("lqCoach is eating...");
}
@Override
public void sleep(){
System.out.println("lqCoach is sleeping...");
}
public void teach(){
System.out.println("lqCoach is teaching basketball...");
}
}
public class a_01_test{
public static void main(String[] args) {
ppPlayer pingPangPlayer = new ppPlayer();
pingPangPlayer.setName("WWW");
pingPangPlayer.setAge(30);
System.out.println("乒乓球运动员1的信息如下:");
System.out.println(pingPangPlayer.getName()+"----"+pingPangPlayer.getAge());
pingPangPlayer.eat();
pingPangPlayer.sleep();
pingPangPlayer.study();
pingPangPlayer.speak();
ppCoach pingpangCoach = new ppCoach();
pingpangCoach.setName("AAA");
pingpangCoach.setAge(20);
System.out.println("乒乓球教练1的信息如下:");
System.out.println(pingpangCoach.getName()+"----"+pingpangCoach.getAge());
pingpangCoach.speak();
pingpangCoach.teach();
lqPlayer lanqiuPlayer = new lqPlayer();
lanqiuPlayer.setName("CCC");
lanqiuPlayer.setAge(25);
System.out.println("篮球运动员1的信息如下:");
System.out.println(lanqiuPlayer.getName()+"----"+lanqiuPlayer.getAge());
lanqiuPlayer.study();
lqCoach lanqiuCoach = new lqCoach();
lanqiuCoach.setName("DDD");
lanqiuCoach.setAge(19);
System.out.println("篮球教练1的信息如下:");
System.out.println(lanqiuCoach.getName()+"----"+lanqiuCoach.getAge());
lanqiuCoach.teach();
}
}