编写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
分享
相关文章
Java 基础篇完整学习攻略
本教程涵盖Java基础到高级内容,包括模块化系统、Stream API、多线程编程、JVM机制、集合框架及新特性如Records和模式匹配等,适合零基础学员系统学习Java编程。
31 0
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
57 0
JAVA 八股文全网最详尽整理包含各类核心考点助你高效学习 jAVA 八股文赶紧收藏
本文整理了Java核心技术内容,涵盖Java基础、多线程、JVM、集合框架等八股文知识点,包含面向对象特性、线程创建与通信、运行时数据区、垃圾回收算法及常用集合类对比,附有代码示例与学习资料下载链接,适合Java开发者系统学习与面试准备。
179 0
|
10天前
|
企业上网监控场景下布隆过滤器的 Java 算法构建及其性能优化研究
布隆过滤器是一种高效的数据结构,广泛应用于企业上网监控系统中,用于快速判断员工访问的网址是否为违规站点。相比传统哈希表,它具有更低的内存占用和更快的查询速度,支持实时拦截、动态更新和资源压缩,有效提升系统性能并降低成本。
26 0
2025 年 Java 学习完整步骤及详细路线指南
本教程涵盖Java从基础到高级的完整学习路径,包括环境配置、语法基础、面向对象编程、集合框架、多线程、网络编程、数据库操作、Spring Boot、微服务架构及项目实战。通过系统学习与实操,助你全面掌握Java核心技术与企业级应用开发。
108 0
java 入门学习视频_2025 最新 java 入门零基础学习视频教程
《Java 21 入门实操指南(2025年版)》提供了Java最新特性的开发指导。首先介绍了JDK 21和IntelliJ IDEA 2025.1的环境配置,包括环境变量设置和预览功能启用。重点讲解了Java 21三大核心特性:虚拟线程简化高并发编程,Record模式优化数据解构,字符串模板提升字符串拼接可读性。最后通过图书管理系统案例,展示如何运用Record定义实体类、使用Stream API进行数据操作,以及结合字符串模板实现控制台交互。该指南完整呈现了从环境搭建到实际项目开发的Java 21全流程实
60 1
银行转账p图软件,对公转账截图生成器,java版开发银行模拟器【仅供学习参考】
这是一套简单的银行账户管理系统代码,包含`BankAccount`和`BankSystem`两个核心类。`BankAccount`负责单个账户的管理
银行流水生成器在线制作,银行转账p图在线生成,java实现最牛的生成器【仅供学习用途】
本示例展示了一个基于Java的银行交易记录管理系统基础架构,涵盖交易记录生成、数字签名加密及账本存储功能。核心内容包括:1) TransactionRecord类
银行流水生成器在线制作,银行转账p图在线生成,java实现最牛的生成器【仅供学习用途】
本资料探讨银行系统核心技术,涵盖交易记录生成、电子回单加密验真及基于Java的财务管理系统开发。主要内容包括:交易记录实体类设计(不可变性与数字签名)
AI助理

你好,我是AI助理

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

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问