185-186 抽象类+接口案例/运动员和教练

6 篇文章 0 订阅
该博客介绍了如何使用Java实现面向对象编程的一个案例,涉及运动员和教练的抽象类与接口。具体包括定义`SpeakEnglish`接口用于说英语,`Person`抽象类表示人并包含基本属性和行为,`Coach`和`Player`抽象类分别表示教练和运动员,以及具体的篮球和乒乓球教练与运动员类。通过这些类和接口,实现了不同角色的特性,如吃饭、学习、教育等,并且乒乓球教练和运动员需要学习英语。
摘要由CSDN通过智能技术生成

185-186 抽象类+接口案例/运动员和教练

需求:有乒乓球运动员、篮球运动员、乒乓球教练、篮球教练。签了出过交流,乒乓球教练、乒乓球运动员需要学习英语。请用所学知识分析,这个案例中有哪些具体类、哪些抽象类、哪些接口,并用代码实现

分析:从具体到抽象的分析步骤。具体的是:乒乓球运动员、篮球运动员、乒乓球教练、篮球教练,抽象的是:运动员、教练,更抽象的是:人。共性:学习英语。

 

思路

1,定义说英语接口

成员方法-说英语

2,定义抽象人类

成员变量-姓名、年龄

构造方法-无参、带参

成员方法-getter、setter、吃饭

3,定义抽象教练类

继承人类

构造方法-无参、带参

成员方法-教育

4,定义抽象运动员类

继承人类

构造方法-无参、带参

成员方法-学习

5,定义具体篮球教练类

继承人类

构造方法-无参、带参

重写方法-吃饭、教育

6,定义具体乒乓球教练类

继承人类

构造方法-无参、带参

重写方法-吃饭、教育、说英语

7,定义具体篮球运动员类

继承人类

构造方法-无参、带参

重写方法-吃饭、学习

8,定义具体乒乓球运动员类

继承人类

构造方法-无参、带参

重写方法-吃饭、学习、说英语

9,定义测试类

main方法、创建具体类对象、调用变量and方法

package itheima05E186;

public class PersonDemo {

    public static void main(String[] args) {

        PingpangCoach pc = new PingpangCoach();

        pc.setName("乒乓球教练王浩");

        pc.setAge(37);

        System.out.println(pc.getName()+","+pc.getAge());

        pc.eat();

        pc.teach();

        pc.speakEnglish();

        System.out.println("--------");

        PingpangPlayer pp = new PingpangPlayer("乒乓球运动员邓亚萍",21);

        System.out.println(pp.getName()+","+pp.getAge());

        pp.eat();

        pp.study();

        pp.speakEnglish();

        System.out.println("________");

        BasketballCoach bc = new BasketballCoach("篮球教练姚明",35);

        System.out.println(bc.getName()+","+bc.getAge());

        bc.eat();

        bc.teach();

        System.out.println("--------");

        BasketballPlayer bp = new BasketballPlayer("篮球运动员林书豪",22);

        System.out.println(bp.getName()+","+bp.getAge());

        bp.eat();

        bp.study();

        System.out.println("--------");

    }

}

--------------------------------------------------------------

package itheima05E186;

public interface SpeakEnglish {

    void speakEnglish();

}

--------------------------------------------------------------

package itheima05E186;

public 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 eat(){

        System.out.println("人是铁饭是钢,一顿不吃饿得慌");

    }

}

--------------------------------------------------------------

package itheima05E186;

public abstract class Coach extends Person{

    public Coach() {

    }

    public Coach(String name, int age) {

        super(name, age);

    }

    public abstract void teach();

}

--------------------------------------------------------------

package itheima05E186;

public abstract class Player extends Person{

    public Player() {

    }

    public Player(String name, int age) {

        super(name, age);

    }

    public abstract void study();

}

--------------------------------------------------------------

package itheima05E186;

public class BasketballCoach extends Coach{

    public BasketballCoach() {

    }

    public BasketballCoach(String name, int age) {

        super(name, age);

    }

    @Override

    public void eat() {

        System.out.println("篮球教练吃羊肉");

    }

    @Override

    public void teach() {

        System.out.println("篮球教练教篮球");

    }

}

--------------------------------------------------------------

package itheima05E186;

public class BasketballPlayer extends Player{

    public BasketballPlayer() {

    }

    public BasketballPlayer(String name, int age) {

        super(name, age);

    }

    @Override

    public void eat() {

        System.out.println("篮球运动员吃牛肉");

    }

    @Override

    public void study() {

        System.out.println("篮球运动员学篮球");

    }

}

--------------------------------------------------------------

package itheima05E186;

public class PingpangCoach extends Coach implements SpeakEnglish{

    public PingpangCoach() {

    }

    public PingpangCoach(String name, int age) {

        super(name, age);

    }

    @Override

    public void eat() {

        System.out.println("乒乓球教练吃大米粥");

    }

    @Override

    public void teach() {

        System.out.println("乒乓球教练教乒乓球");

    }

    @Override

    public void speakEnglish() {

        System.out.println("乒乓球教练学英语");

    }

}

--------------------------------------------------------------

package itheima05E186;

public class PingpangPlayer extends Player implements SpeakEnglish{

    public PingpangPlayer() {

    }

    public PingpangPlayer(String name, int age) {

        super(name, age);

    }

    @Override

    public void eat() {

        System.out.println("乒乓球运动员吃小米粥");

    }

    @Override

    public void study() {

        System.out.println("乒乓球运动员学习乒乓球");

    }

    @Override

    public void speakEnglish() {

        System.out.println("乒乓球运动员学英语");

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值