1 /* 2 教練和運動員案例(學生分析然后講解) 3 乒乓球運動員和籃球運動員。 4 乒乓球教練和籃球教練。 5 為了出國交流,跟乒乓球相關的人員都需要學習英語。 6 請用所學知識: 7 分析,這個案例中有哪些抽象類,哪些接口,哪些具體類。 8 分析: 9 1、共同的屬性:姓名 年齡 10 共同的方法:吃飯,睡覺 11 其中吃飯的內容兩者不同,所以用抽象方法 12 不同的方法:隊員練習,教練教導,分別寫入隊員類和教練類 13 2、接口:學習英語 14 3、抽象類:人類; 運動員類、教練類 這兩個繼承人類 15 具體類:乒乓球隊員類、教練類和籃球隊員類、教練類 ; 分別繼承運動員類或教練類,其中乒乓球有關的擴展學習英語接口 16 */ 17 18 //定義學英語接口 19 interface English{ 20 public abstract void speak(); 21 } 22 23 //定義抽象人類 24 abstract class person{ 25 //成員變量 26 private String name; 27 private int age; 28 29 //無參構造方法 30 public person(){} 31 32 //有參構造方法 33 public person(String name,int age){ 34 this.name = name; 35 this.age = age; 36 } 37 38 public String getName(){ 39 return name; 40 } 41 public void setName(String name){ 42 this.name = name; 43 } 44 public int getAge(){ 45 return age; 46 } 47 public void setAge(int age){ 48 this.age = age; 49 } 50 51 //抽象方法 52 public abstract void eat(); 53 //成員方法 54 public void sleep(){ 55 System.out.println("睡覺去"); 56 } 57 } 58 59 //抽象運動員類 60 abstract class player extends person{ 61 //無參構造方法 62 public player(){} 63 //有參構造方法 64 public player(String name,int age){ 65 super(name,age); 66 } 67 //特有的方法,練習,不得不做的,用抽象 68 public abstract void student(); 69 } 70 71 //抽象教練類 72 abstract class coach extends person{ 73 public coach(){} 74 public coach(String name,int age){ 75 super(name,age); 76 } 77 public abstract void teacher(); 78 } 79 80 //具體乒乓球運動類 81 class pingpangplayer extends player implements English{ 82 public pingpangplayer(){} 83 public pingpangplayer(String name,int age){ 84 super(name,age); 85 } 86 public void speak() { 87 System.out.println("要學習英語"); 88 } 89 public void student() { 90 System.out.println("要練習發球和接球的技巧"); 91 } 92 public void eat() { 93 System.out.println("吃清淡的飯菜"); 94 } 95 } 96 97 //具體乒乓球教練類 98 class pingpangcoach extends coach implements English{ 99 public pingpangcoach(){} 100 public pingpangcoach(String name,int age){ 101 super(name,age); 102 } 103 public void speak(){ 104 System.out.println("要學習英語"); 105 } 106 public void teacher(){ 107 System.out.println("要教導隊員發球和接球的技巧"); 108 } 109 public void eat(){ 110 System.out.println("跟著隊員吃清淡的飯菜"); 111 } 112 } 113 114 //具體籃球隊員類 115 class basketballplayer extends player{ 116 public basketballplayer(){} 117 public basketballplayer(String name,int age){ 118 super(name,age); 119 } 120 public void eat(){ 121 System.out.println("要吃油膩的飯菜"); 122 } 123 public void student(){ 124 System.out.println("要練習運球和投籃技巧"); 125 } 126 } 127 //具體籃球教練類 128 class basketballcoach extends coach{ 129 public basketballcoach(){} 130 public basketballcoach(String name,int age){ 131 super(name,age); 132 } 133 public void eat(){ 134 System.out.println("要跟著隊員,吃油膩的飯菜"); 135 } 136 public void teacher(){ 137 System.out.println("要教導隊員運球和投籃技巧"); 138 } 139 } 140 141 class InterfaceTest1 { 142 public static void main(String[] args) { 143 //測試運動員(乒乓球運動員和籃球運動員) 144 //乒乓球運動員 145 pingpangplayer p3 = new pingpangplayer("馬龍",26); 146 p3.eat(); 147 p3.sleep(); 148 p3.student(); 149 p3.speak(); 150 151 basketballplayer b2p = new basketballplayer("姚明",38); 152 b2p.eat(); 153 b2p.sleep(); 154 b2p.student(); 155 156 System.out.println("------------"); 157 //測試教練類 158 159 pingpangcoach p2c = new pingpangcoach("教練p",41); 160 p2c.eat(); 161 p2c.sleep(); 162 p2c.teacher(); 163 p2c.speak(); 164 165 basketballcoach b2c = new basketballcoach("教練b",38); 166 b2c.eat(); 167 b2c.sleep(); 168 b2c.teacher(); 169 170 } 171 172 }
?