需求说明:

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

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

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

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

(4)接口:学习英语。

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

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

程序运行结果:

实现思路:

(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();
} }

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

  1. Java初学者作业——编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级。定义方法实现学生成绩的评测功能。

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级.要求:定义方法实现学生成绩的评测功能. 学生的英语考试成绩进行评测,评测规 ...

  2. 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。

    查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...

  3. Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...

  4. 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

      35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...

  5. 初学编写JAVA程序

    一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...

  6. Java初学者作业——使用记事本编写Java程序

    返回本章节 返回作业目录 需求说明: 使用记事本编写 Java 程序,输出"大家好!我的梦想是做一名 Java 高级工程师!". 为 Java 程序添加单行和多行注释以及文档注释. ...

  7. Java初学者作业——编写Java程序,实现用户登录验证。

    返回本章节 返回作业目录 需求说明: 编写Java程序,实现用户登录验证. 若用户名与密码输入正确,则提示"登录成功,欢迎回来!",若用户名与密码不匹配,则提示"用户名和 ...

  8. Java初学者作业——编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数。

    返回本章节 返回作业目录 需求说明: 编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数. 实现思路: 声明变量sum.count以及avg用于存储总成绩.班 ...

  9. Java初学者作业——编写Java程序,输入一个数字,实现该数字阶乘的计算。

    返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4* ...

随机推荐

  1. winXP 下安装python3.3.2

    1. 安装python-3.3.2 2. 安装setuptools 下载解压后,进入路径 python setup.py install 3.安装pip 下载解压后,进入路径 python setup ...

  2. Output of C++ Program | Set 15

    Predict the output of following C++ programs. Question 1 1 #include <iostream> 2 using namespa ...

  3. Linux学习 - 环境变量配置文件

    一.环境变量配置文件的作用 /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 1 /etc/profile的 ...

  4. RestTemplate的exchange()方法,解决put和delete请求拿不到返回值的问题

    嗷嗷待哺的controller(被调用provider的controller方法) //测试get少量参数 @RequestMapping(value = "detailsGetD" ...

  5. vue-cli4脚手架搭建三

    组件传值 <script> import LunBo from "./LunBo"; export default { name: 'Home', components ...

  6. GCD的补充

    1-1 关于GCD中的创建和释放     在iOS6.0之前,在GCD中每当使用带creat单词的函数创建对象之后,都应该对其进行一次release操作.           在iOS6.0之后,GC ...

  7. 将前端请求中的数据绑定到Spring MVC响应方法中参数的四种方法

    一.映射URL绑定的占位符到方法参数 1.方法 使用@PathVariable注解 2.代码示例 a.接收请求方法 @RequestMapping(value = "/deleteInfo/ ...

  8. JSP常用内置对象

    1.request 1.1getAttribute(String name) 2.getAttributeName() 3.getCookies() 4.getCharacterEncoding() ...

  9. KrakenD url匹配通配符 url_pattern wildcard

    KrakenD是一个高性能Api网关,  api转发的推荐做法是每个api一个配置项,也就是一个endpoint,其开发者认为api网关和纯粹的L7路由不一样(文章链接). 因此社区版并没有提供通配符 ...

  10. Git remote 远程仓库链接管理

    SVN 使用单个集中仓库作为开发人员的通信枢纽,通过在开发人员的工作副本和中央仓库之间传递变更集来进行协作. 这与 Git 的分布式协作模型不同,后者为每个开发人员提供了自己的仓库副本,并具有自己的本 ...