10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
运动员和教练的案例分析

运动运和教练的案例 代码实现
/*
教练和运动员案例
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。 整个分析过程,我是通过画图讲解的。
*/
//定义一个说英语的接口
interface SpeakEnglish {
//说英语
public abstract void speak();
} //定义人的抽象类
abstract 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 sleep() {
System.out.println("人都是要睡觉的");
} //吃饭,运动员和教练吃的不一样。这里使用抽象方法
public abstract void eat();
} //定义运动员抽象类
abstract class Player extends Person {
public Player() {} public Player(String name,int age) {
super(name,age);
} //学习,乒乓器和篮球运动员学习的东西不一样。这里使用抽象方法
public abstract void study();
} //定义教练抽象类
abstract class Coach extends Person {
public Coach() {} public Coach(String name,int age) {
super(name,age);
} //教,乒乓器和篮球运动员教的东西不一样。这里使用抽象方法
public abstract void teach();
} //定义乒乓球运动员具体类
class PingPangPlayer extends Player implements SpeakEnglish {
public PingPangPlayer(){} public PingPangPlayer(String name,int age) {
super(name,age);
} //吃
public void eat() {
System.out.println("乒乓球运动员吃大白菜,喝小米粥");
} //学习
public void study() {
System.out.println("乒乓球运动员学习如何发球和接球");
} //说英语
public void speak() {
System.out.println("乒乓球运动员说英语");
}
} //定义篮球运动员具体类
class BasketballPlayer extends Player {
public BasketballPlayer(){} public BasketballPlayer(String name,int age) {
super(name,age);
} //吃
public void eat() {
System.out.println("篮球运动员吃牛肉,喝牛奶");
} //学习
public void study() {
System.out.println("篮球运动员学习如何运球和投篮");
}
} //定义乒乓球教练具体类
class PingPangCoach extends Coach implements SpeakEnglish {
public PingPangCoach(){} public PingPangCoach(String name,int age) {
super(name,age);
} //吃
public void eat() {
System.out.println("乒乓球教练吃小白菜,喝大米粥");
} //教
public void teach() {
System.out.println("乒乓球教练教如何发球和接球");
} //说英语
public void speak() {
System.out.println("乒乓球教练说英语");
}
} //定义篮球教练具体类
class BasketballCoach extends Coach {
public BasketballCoach(){} public BasketballCoach(String name,int age) {
super(name,age);
} //吃
public void eat() {
System.out.println("篮球教练吃羊肉,喝羊奶");
} //教
public void teach() {
System.out.println("篮球教练教如何运球和投篮");
}
} class InterfaceDemo {
public static void main(String[] args) {
//测试运动员(乒乓球运动员和篮球运动员)
//乒乓球运动员
PingPangPlayer ppp = new PingPangPlayer();
ppp.setName("王浩");
ppp.setAge(33);
System.out.println(ppp.getName()+"---"+ppp.getAge());
ppp.eat();
ppp.sleep();
ppp.study();
ppp.speak();
System.out.println("----------------");
//通过带参构造给数据
ppp = new PingPangPlayer("刘洋",36);
System.out.println(ppp.getName()+"---"+ppp.getAge());
ppp.eat();
ppp.sleep();
ppp.study();
ppp.speak();
System.out.println("----------------"); //篮球运动员
BasketballPlayer bp = new BasketballPlayer();
bp.setName("姚明");
bp.setAge(34);
System.out.println(bp.getName()+"---"+bp.getAge());
bp.eat();
bp.sleep();
bp.study();
//bp.speak(); //没有该方法 }
}
10-01 Java 类,抽象类,接口的综合小练习--运动员和教练的更多相关文章
- java类,接口浅谈
一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展) 需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口 内部类: ...
- 要创建一个EJB,必须要至少编写哪些Java类和接口?
要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC
- Java 类、接口的API
本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 O ...
- 第10章 Java类的三大特性之一:多态
1.Java中的多态 多态是指对象的多种形态,主要包括这两种: 1.1引用多态 a.父类的引用可以指向本类的对象b.父类的引用可以指向子类的对象举个例子:父类Anmail,子类Dog,可以使用父类An ...
- [Java] 类和接口的初始化步骤 - 继承方面
类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static ...
- java9-1.类,抽象类,接口的综合小练习
/* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析,这个案例中有哪些抽象类,哪些接口 ...
- c#中接口、抽象类、继承综合小练习
namespace Test { class Program { static void Main(string[] args) { //作业:橡皮rubber鸭子.木wood鸭子.真实的鸭子real ...
- EFFECTIVE JAVA 类和接口
第十六条:复合优先于继承 //这是一个不好的类---执行的结果 addCount = 4(addAll的实现依赖于HashSet的add方法,InstrumentHashSet方法重写了add方法有执 ...
- java特殊抽象类-接口
随机推荐
- linux安装源码jdk
第一步: 传输jdk到服务器上可以用xhsell,也可以用ftp 第二步:解压文件 tar -xzvf jdk-7u80-linux-x64.tar.gz 第三步:配置环境变量 输入即可 注意:修改J ...
- poj 1094 Sorting It All Out 拓补排序
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- MFC模块状态(二)AFX_MANAGE_STATE(AfxGetStaticModuleState())
以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState()).一直不明白这样做 ...
- TinyMCE Editor
TinyMCE Editor(https://www.tinymce.com/features/) is an online text editor, it is used to write post ...
- noip第25课作业
1. 求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...
- 二分图匹配-HK算法
先把代码贴上,其他南京回来再补了.. #include <cstdio> #include <cstdlib> #include <cstring> #includ ...
- hdu 3910 Liang Guo Sha
题目链接:hdu 3910 Liang Guo Sha 题目大意:Alice和Bob这两个小伙伴又发明了一种新游戏, 叫两国杀, 每个人手上有两张牌,“杀” 和“闪”, 然后有三个数值A,B和C, 当 ...
- AngularJS 表单数据验证及错误信息提示
一.表单验证基本原理 表单验证包括两个主题: 定义验证规则,验证数据有效性. 显示验证结果,把验证结果以友好的方式显示给用户. H5内置一些验证功能,并会显示内置的错误提示信息,先要禁用它,在< ...
- AngularJS 单元测试 Karma jasmine
当AngularJS项目越来越大时候,需要进行单元测试,可以先开发功能再进行测试,也可以先进行测试. 一.karma 是一个基于Node.js(先要安装)的JavaScript测试执行过程管理工具( ...
- iOS开发中与库相关的术语
动态库 VS 静态库 Static frameworks are linked at compile time. Dynamic frameworks are linked at runtime