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 }