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 }

 

posted @ 2021-02-22 20:10  找不到北的北  阅读(173)  评论(0)    收藏  举报