需求说明:

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

(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. redis入门到精通系列(一)

    (一)为什么要用Nosql 如果你是计算机本科学生 ,那么一定使用过关系型数据库mysql.在请求量小的情况下,使用mysql不会有任何问题,但是一旦同时有成千上万个请求同时来访问系统时,就会出现卡顿 ...

  2. Linux:$?,$n,$#,$0

    $? 获取执行上一个指令的返回值(0为成功,非零为失败) $n 获取当前执行的shell脚本的第n个参数值,n=1...9,当n=0的时表示脚本的文件名,如果n大于9,大括号括起来${10} $# 获 ...

  3. UIButton总结

    UIButton 1. 功能 既能显示文字,又能显示图片(能显示2张图片,背景图片.内容图片) 长按高亮的时候可以切换图片\文字 直接通过addTarget...方法监听点击 2. 状态 normal ...

  4. 【MySQL】查询不在表中的数据

    1.方法一(仅适用单个字段):使用 not in ,比较容易理解,缺点是效率低 如:select A.ID from A where A.ID not in (select ID from B): 2 ...

  5. 『学了就忘』Linux启动引导与修复 — 71、grub启动引导程序的加密

    目录 1.什么是grub加密 2.grub加密步骤 3.grub加密的lock属性 1.什么是grub加密 上篇文章说了,系统在开机的时候,有一个5秒的读秒时间,方便你进入到grub界面中. 如下图所 ...

  6. Mysql实例 表设计

    目录 一.介绍 二.设计表格 三.查询 查都有哪些公司 查A公司都放了哪些广告 查A公司10月份该交多少广告费 四.分析 表结构设置 sql语句 其它功能 一.介绍 有一个公司叫月亮集团,他们旗下有很 ...

  7. 车载以太网第二弹|测试之实锤-1000BASE-T1物理层PMA测试实践

    背景 100BASE-T1方兴未艾,国内外OEM量产车型纷至沓来:为了满足高带宽的应用场景需求(如图像.雷达等数据传输),1000BASE-T1将至已至,如大众MEB平台采用1000BASE-T1总线 ...

  8. php-正则邮箱验证及详解

    当前的邮箱格式有哪些//1.第1种是QQ邮箱,它的后缀名是,@qq, .com.// 2.第2种是网易邮箱后缀名是,@163.com或者,@126.com// 3.第3种是雅虎邮箱,后缀名是,@yah ...

  9. <转>libevent基本使用demo

    这篇文章介绍下libevent在socket异步编程中的应用.在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的 ...

  10. 谱聚类算法—Matlab代码

    % ========================================================================= % 算 法 名 称: Spectral Clus ...