编写Java程序,模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员。教练员包括乒乓球教练和篮球教练。为了方便出国交流,根乒乓球相关的人员都需要学习英语。

简介: 编写Java程序,模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员。教练员包括乒乓球教练和篮球教练。为了方便出国交流,根乒乓球相关的人员都需要学习英语。

需求说明:


模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员。教练员包括乒乓球教练和篮球教练。为了方便出国交流,根乒乓球相关的人员都需要学习英语。具体分析如下:


(1)共同的属性:姓名、年龄。


(2)共同的方法:吃饭。其中吃饭的内容两者不同,所以采用抽象的方法。


(3)不同的方法:队员练习,教练教导,分别写入队员类和教练类。


(4)接口:学习英语。


(5)抽象类:人类、运动员类、教练类、后两者继承自人类。


(6)具体类:乒乓球队员类、教练类和篮球队员类、教练类;分别继承远动员或教练类,其中乒乓球有关的扩展学习英语接口


72.png


程序运行结果:

image.png


实现思路:


(1)定义英语接口English,该接口中定义抽象方法speak(),返回值类型是void。


(2)定义抽象类Person,包括两个成员变量,分别是name 和 age。name是String 类型,age是int类型。定义两个构造方法,一个有参,一个无参。再定义一个抽象方法,eat(),返回值类型是void。最后定义一个show()方法,返回值是void。该方法中显示名称和年龄。


(3)定义抽象远动员类Player,它继承了Person抽象类。定义两个构造方法一个有参,一个无参注意应用super。再定义一个抽象方法student()。返回值是void。这是运动员类特有的方法。


(4)定义抽象教练类Coach,它继承了Person抽象类。定义两个构造方法一个有参,一个无参注意应用super。再定义一个抽象方法teacher()。返回值是void。这是运动员类特有的方法。


(5)定义乒乓球运动员类PingpangPlayer。它继承Player,同时实现English接口。


(6)定义乒乓球教练类PingpangCoach。它继承Coach,同时实现English接口。


(7)定义篮球运动员类BasketballPlayer。它继承Player。


(8)定义篮球教练类BasketballCoach。它继承Coach。


(9)定义测试类Test,在主方法中,分别实例化不同运动员和教练员并调用各自的方法。


实现代码:


English 接口:

//定义一个说英语的接口
public interface English {
  //说英语
  void speak();
}


Person 抽象类:


public abstract class Persion {
  private String name;//姓名
  private int age;//年龄
  //无参构造
  public Persion() {
  }
  //有参构造
  public Persion(String name, int age) {
    this.name = name;
    this.age = age;
  }
  //吃饭的抽象方法
  public abstract void eat();
  //睡觉
  public void sleep() {
    System.out.println("人的要睡觉的");
  }
  //展示姓名和年龄
  public void show() {
    System.out.printf("姓名:%s\t年龄:%d",name,age);
    System.out.println();
  }
  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;
  }
}


Player 运动员类:


public abstract class Player extends Persion{
  //无参构造
  public Player() {
    super();
  }
  //有参构造方法
  public Player(String name,int age) {
    super();
  }
  //运动员学习的抽象类
  public abstract void student();
}


Coach 教练类:


public abstract class Coach extends Persion {
  //无参构造
  public Coach() {
    super();
  }
  //有参构造方法
  public Coach(String name,int age) {
    super();
  }
  //教练教授的学习方法
  public abstract void teacher();
}


PingpangPlayer 乒乓球运动员类:


public class PingpangPlayar extends Player implements English {
  @Override
  public void student() {
    System.out.println("乒乓球运动员要练习发球和接球技巧");
  }
  @Override
  public void eat() {
    System.out.println("乒乓运动员吃清淡的饭菜");
  }
  @Override
  public void speak() {
    System.out.println("乒乓球运动员要学习英语");
  }
}


PingpangCoach 乒乓球教练类:


public class PingpangCoach extends Coach implements English {
  @Override
  public void teacher() {
    System.out.println("乒乓球教练要教导队员发球和接球技巧");
  }
  @Override
  public void eat() {
    System.out.println("乒乓球教练跟着队员吃清淡的饭菜");
  }
  @Override
  public void speak() {
    System.out.println("乒乓球教练要学习英语");
  }
}


BasketballPlayer 篮球运动员类:


public class BasketballPlayer extends Player {
  @Override
  public void student() {
    System.out.println("篮球运动员要练习运球和投篮技巧");
  }
  @Override
  public void eat() {
    System.out.println("篮球运动员要吃高蛋白的饭菜,保持健壮的身体");
  }
}


BasketballCoach 篮球教练类:


public class BasketballCoach extends Coach {
  @Override
  public void teacher() {
    System.out.println("篮球教练要跟着队员,要吃高蛋白的饭菜");
  }
  @Override
  public void eat() {
    System.out.println("篮球教练要教导队员运球和投篮技巧");
  }
}


Test 测试类:


public class Test {
  public static void main(String[] args) {
    //实例化乒乓球运动员
    PingpangPlayar pp = new PingpangPlayar();
    pp.setName("马明");
    pp.setAge(26);
    pp.show();
    pp.eat();
    pp.student();
    pp.speak();
    System.out.println("----------------------");
    //实例化乒乓球教练
    PingpangCoach pc = new PingpangCoach();
    pc.setName("姚梁");
    pc.setAge(38);
    pc.show();
    pc.eat();
    pc.teacher();
    pc.speak();
    System.out.println("----------------------");
    //实例化篮球运动员
    BasketballPlayer bp = new BasketballPlayer();
    bp.setName("刘国");
    bp.setAge(41);
    bp.show();
    bp.eat();
    bp.student();
    System.out.println("----------------------");
    //实例化篮球教练
    BasketballCoach bc = new BasketballCoach();
    bc.setName("杰克");
    bc.setAge(42);
    bc.show();
    bc.eat();
    bc.teacher();
  }
}
目录
打赏
0
0
0
0
6
分享
相关文章
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
课时5:第一个Java程序
课时5介绍了编写第一个Java程序的步骤,包括创建Hello.java文件、编写“Hello World”代码、编译和运行程序。主要内容有:1) 新建并编辑Hello.java;2) 编译Java源文件生成.class文件;3) 通过命令行解释执行Java程序;4) 解释主方法的作用及信息输出操作。本课强调了类定义、文件命名规则和基本程序结构的重要性,并建议初学者使用记事本编写代码以熟悉基础语法。
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
消防救援支队消防员单兵装备智能养护舱点击驱动java版程序(一)
智能消防作战服架通过电机驱动系统提升消防员作业效率和安全性。本文介绍基于Java的电机驱动程序开发,涵盖硬件准备、软件环境搭建及驱动程序实现。重点包括串口通信配置、电机控制类设计与控制逻辑实现,确保电机高效稳定运行。通过正确配置通信协议和串口参数,并添加异常处理机制,保障系统的安全性和可靠性。
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
47 10
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
267 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等