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 }