2-18_运动员和教练案例代码实现
1 package InterfacePlayerAndCoach; 2 3 public abstract class Person { 4 private String name; 5 private int age; 6 7 public Person() { 8 } 9 10 public Person(String name, int age) { 11 this.name = name; 12 this.age = age; 13 } 14 15 public String getName() { 16 return name; 17 } 18 19 public void setName(String name) { 20 this.name = name; 21 } 22 23 public int getAge() { 24 return age; 25 } 26 27 public void setAge(int age) { 28 this.age = age; 29 } 30 31 public abstract void eat(); 32 }
package InterfacePlayerAndCoach; public abstract class Coach extends Person{ public Coach() { } public Coach(String name, int age) { super(name, age); } public abstract void teach(); }
1 package InterfacePlayerAndCoach; 2 3 public class BasketballCoach extends Coach{ 4 public BasketballCoach() { 5 } 6 7 public BasketballCoach(String name, int age) { 8 super(name, age); 9 } 10 11 @Override 12 public void teach() { 13 System.out.println("篮球教练教如何运球和投球"); 14 } 15 16 @Override 17 public void eat() { 18 System.out.println("篮球教练吃羊肉,喝羊奶"); 19 } 20 }
1 package InterfacePlayerAndCoach; 2 3 public interface SpeakEnglish { 4 public abstract void speak(); 5 }
1 package InterfacePlayerAndCoach; 2 3 public class PingPangCoach extends Coach implements SpeakEnglish{ 4 public PingPangCoach() { 5 } 6 7 public PingPangCoach(String name, int age) { 8 super(name, age); 9 } 10 11 @Override 12 public void teach() { 13 System.out.println("乒乓球教练教如何发球和接球"); 14 } 15 16 @Override 17 public void eat() { 18 System.out.println("乒乓球教练吃小白菜,喝大米粥"); 19 } 20 21 @Override 22 public void speak() { 23 System.out.println("乒乓球教练说英语"); 24 } 25 }
1 package InterfacePlayerAndCoach; 2 3 public abstract class Player extends Person{ 4 public Player() { 5 } 6 7 public Player(String name, int age) { 8 super(name, age); 9 } 10 11 public abstract void study(); 12 }
1 package InterfacePlayerAndCoach; 2 3 public class BasketballPlayer extends Player{ 4 5 6 public BasketballPlayer() { 7 } 8 9 public BasketballPlayer(String name, int age) { 10 super(name, age); 11 } 12 13 @Override 14 public void study() { 15 System.out.println("篮球运动员学习如何运球和投篮"); 16 } 17 18 @Override 19 public void eat() { 20 System.out.println("篮球运动员吃牛肉,喝牛奶"); 21 } 22 }
1 package InterfacePlayerAndCoach; 2 3 public class PingPangPlayer extends Player implements SpeakEnglish{ 4 public PingPangPlayer() { 5 } 6 7 public PingPangPlayer(String name, int age) { 8 super(name, age);
1 package InterfacePlayerAndCoach; 2 3 public class PingPangCoach extends Coach implements SpeakEnglish{ 4 public PingPangCoach() { 5 } 6 7 public PingPangCoach(String name, int age) { 8 super(name, age); 9 } 10 11 @Override 12 public void teach() { 13 System.out.println("乒乓球教练教如何发球和接球"); 14 } 15 16 @Override 17 public void eat() { 18 System.out.println("乒乓球教练吃小白菜,喝大米粥"); 19 } 20 21 @Override 22 public void speak() { 23 System.out.println("乒乓球教练说英语"); 24 } 25 }
1 package InterfacePlayerAndCoach; 2 /* 3 运动员和教练 4 5 需求:我们现在有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。 6 请用所学知识分析,这个案例中有哪些具体类,哪些是抽象类,哪些接口,并用代码实现 7 分析:从具体到抽象 8 乒乓球运动员 9 篮球运动员 10 乒乓球教练 11 篮球教练 12 实现:从抽象到具体 13 实现:使用的是具体的类的对象 14 15 16 思路: 17 1.定义说英语接口 成员方法:说英语(); 18 2.定义抽象人类 成员变量:姓名,年龄;构造方法:无参,带参;成员方法:get/set方法,吃饭(); 19 3.定义抽象教练类,继承人类 构造方法:无参,带参;成员方法:教学() 20 4.定义抽象运动员类,继承人类 构造方法:无参,带参;成员方法:学习() 21 5.定义具体篮球教练类,继承教练类 构造方法:无参,带参;成员方法:重写吃饭(){...},重写教学 22 6.定义具体乒乓球教练类,继承教练类,实现说英语接口 23 构造方法:无参,带参;成员方法:重写吃饭,重写教学,重写说英语 24 7.定义具体篮球运动员类,继承运动员类 构造方法:无参,带参;成员方法:重写吃饭,重写学习 25 8.定义具体乒乓球运动员类,继承运动员类,实现说英语接口 26 构造方法:无参,带参;成员方法:重写吃饭,重写学习,重写说英语 27 9.定义测试,写代码测试 28 * */ 29 public class personDemo { 30 public static void main(String[] args) { 31 //创建对象 32 PingPangPlayer ppp = new PingPangPlayer(); 33 ppp.setName("小明"); 34 ppp.setAge(35); 35 System.out.println(ppp.getName()+","+ppp.getAge()); 36 ppp.eat(); 37 ppp.study(); 38 ppp.speak(); 39 System.out.println("---------"); 40 41 42 BasketballPlayer bp = new BasketballPlayer(); 43 bp.setName("姚明"); 44 bp.setAge(40); 45 System.out.println(bp.getName()+","+bp.getAge()); 46 bp.eat(); 47 bp.study(); 48 } 49 }
9 } 10 11 @Override 12 public void study() { 13 System.out.println("乒乓球运动员学习如何发球和接球"); 14 } 15 16 @Override 17 public void eat() { 18 System.out.println("乒乓球运动员吃大白菜,喝小米粥"); 19 } 20 21 @Override 22 public void speak() { 23 System.out.println("乒乓球运动员说英语"); 24 } 25 }