運動員和教練的案例分析
運動運和教練的案例 代碼實現
/* 教練和運動員案例 乒乓球運動員和籃球運動員。 乒乓球教練和籃球教練。 為了出國交流,跟乒乓球相關的人員都需要學習英語。 請用所學知識: 分析,這個案例中有哪些抽象類,哪些接口,哪些具體類。 整個分析過程,我是通過畫圖講解的。 */ //定義一個說英語的接口 interface SpeakEnglish { //說英語 public abstract void speak(); } //定義人的抽象類 abstract class Person { private String name; private int age; public Person() {} public Person(String name,int age) { this.name = name; this.age = age; } 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 sleep() { System.out.println("人都是要睡覺的"); } //吃飯,運動員和教練吃的不一樣。這里使用抽象方法 public abstract void eat(); } //定義運動員抽象類 abstract class Player extends Person { public Player() {} public Player(String name,int age) { super(name,age); } //學習,乒乓器和籃球運動員學習的東西不一樣。這里使用抽象方法 public abstract void study(); } //定義教練抽象類 abstract class Coach extends Person { public Coach() {} public Coach(String name,int age) { super(name,age); } //教,乒乓器和籃球運動員教的東西不一樣。這里使用抽象方法 public abstract void teach(); } //定義乒乓球運動員具體類 class PingPangPlayer extends Player implements SpeakEnglish { public PingPangPlayer(){} public PingPangPlayer(String name,int age) { super(name,age); } //吃 public void eat() { System.out.println("乒乓球運動員吃大白菜,喝小米粥"); } //學習 public void study() { System.out.println("乒乓球運動員學習如何發球和接球"); } //說英語 public void speak() { System.out.println("乒乓球運動員說英語"); } } //定義籃球運動員具體類 class BasketballPlayer extends Player { public BasketballPlayer(){} public BasketballPlayer(String name,int age) { super(name,age); } //吃 public void eat() { System.out.println("籃球運動員吃牛肉,喝牛奶"); } //學習 public void study() { System.out.println("籃球運動員學習如何運球和投籃"); } } //定義乒乓球教練具體類 class PingPangCoach extends Coach implements SpeakEnglish { public PingPangCoach(){} public PingPangCoach(String name,int age) { super(name,age); } //吃 public void eat() { System.out.println("乒乓球教練吃小白菜,喝大米粥"); } //教 public void teach() { System.out.println("乒乓球教練教如何發球和接球"); } //說英語 public void speak() { System.out.println("乒乓球教練說英語"); } } //定義籃球教練具體類 class BasketballCoach extends Coach { public BasketballCoach(){} public BasketballCoach(String name,int age) { super(name,age); } //吃 public void eat() { System.out.println("籃球教練吃羊肉,喝羊奶"); } //教 public void teach() { System.out.println("籃球教練教如何運球和投籃"); } } class InterfaceDemo { public static void main(String[] args) { //測試運動員(乒乓球運動員和籃球運動員) //乒乓球運動員 PingPangPlayer ppp = new PingPangPlayer(); ppp.setName("王浩"); ppp.setAge(33); System.out.println(ppp.getName()+"---"+ppp.getAge()); ppp.eat(); ppp.sleep(); ppp.study(); ppp.speak(); System.out.println("----------------"); //通過帶參構造給數據 ppp = new PingPangPlayer("劉洋",36); System.out.println(ppp.getName()+"---"+ppp.getAge()); ppp.eat(); ppp.sleep(); ppp.study(); ppp.speak(); System.out.println("----------------"); //籃球運動員 BasketballPlayer bp = new BasketballPlayer(); bp.setName("姚明"); bp.setAge(34); System.out.println(bp.getName()+"---"+bp.getAge()); bp.eat(); bp.sleep(); bp.study(); //bp.speak(); //沒有該方法 } }