/*
教练和运动员案例
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员需要学习英语。
分析,这个案例中有哪 些抽象类,哪些接口,哪些具体类
分析:从具体到抽象
运动员:
乒乓球运动员:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}、学习英语();
篮球运动员:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}
教练:
乒乓球教练:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}、教();、、学习英语();
篮球教练:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}、教();
由于有共性的功能,所以,提取出一个父类,人类
人类:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}
部分运动员需要学习英语 英语接口
接口:
学习英语
实现:从抽象到具体
接口:
学习英语();
人类:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:吃();、睡觉(){}
运动员:
乒乓球运动员:
继承自人类
成员方法:学习();、学习英语();
篮球运动员:
继承自人类
成员方法:学习();
教练:
乒乓球教练:
继承自人类
成员方法:教();、学习英语();
篮球教练:
继承自人类
成员方法:教();
使用:具体类实现
*/
//定义学习英语接口
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;
}
//getXxx()/setXxx()
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 abstract void eat();
//睡觉(){}
public void sleep(){
System.out.println("人要睡觉");
}
}
//定义抽象运动员类
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 teah();
}
//具体乒乓球运动员类
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 teah(){
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 teah(){
System.out.println("篮球教练教学员投球");
}
}
//测试类
class InterfaceDemo{
public static void main(String[] args){
//测试运动员(乒乓球运动员和篮球运动员)
//测试乒乓球运动员
//方式1
System.out.println("--------------乒乓球运动员具体传参----------------");
PingPangPlayer ppp = new PingPangPlayer();
ppp.setName("王浩");
ppp.setAge(33);
System.out.println(ppp.getName()+"---"+ppp.getAge());
ppp.eat();
ppp.sleep();
ppp.study();
ppp.speak();
//方式2
System.out.println("--------------乒乓球运动员构造传参----------------");
PingPangPlayer ppp2 = new PingPangPlayer("王浩",33);
System.out.println(ppp2.getName()+"---"+ppp2.getAge());
ppp2.eat();
ppp2.sleep();
ppp2.study();
ppp2.speak();
//测试篮球运动员
//方式1
System.out.println("--------------篮球运动员具体传参----------------");
BasketballPlayer bp = new BasketballPlayer();
bp.setName("姚明");
bp.setAge(39);
System.out.println(bp.getName()+"---"+bp.getAge());
bp.eat();
bp.sleep();
bp.study();
//方式2
System.out.println("--------------篮球运动员构造传参----------------");
BasketballPlayer bp2 = new BasketballPlayer("姚明",39);
System.out.println(bp2.getName()+"---"+bp2.getAge());
bp2.eat();
bp2.sleep();
bp2.study();
System.out.println("-------------------------------");
//测试教练(乒乓球教练和篮球教练)
//测试乒乓球教练
//方式1
System.out.println("--------------乒乓球教练具体传参----------------");
PingPangCoach ppc = new PingPangCoach();
ppc.setName("王浩明");
ppc.setAge(43);
System.out.println(ppc.getName()+"---"+ppc.getAge());
ppc.eat();
ppc.sleep();
ppc.teah();
ppc.speak();
//方式2
System.out.println("--------------乒乓球教练构造传参----------------");
PingPangCoach ppc2 = new PingPangCoach("王浩明",43);
System.out.println(ppc2.getName()+"---"+ppc2.getAge());
ppc2.eat();
ppc2.sleep();
ppc2.teah();
ppc2.speak();
测试篮球教练
//方式1
System.out.println("--------------篮球教练具体传参----------------");
BasketballCoach bc = new BasketballCoach();
bc.setName("王浩明");
bc.setAge(43);
System.out.println(bc.getName()+"---"+bc.getAge());
bc.eat();
bc.sleep();
bc.teah();
//方式2
System.out.println("--------------篮球教练构造传参----------------");
BasketballCoach bc2 = new BasketballCoach("王浩明",43);
System.out.println(bc2.getName()+"---"+bc2.getAge());
bc2.eat();
bc2.sleep();
bc2.teah();
}
}
面向对象_运动员和教练案例实现、测试
原创
©著作权归作者所有:来自51CTO博客作者wx62dfdc6aea345的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
案例:运动员和教练(接口和抽象类)
20英里法则
java android 开发语言 ide 测试类 -
类、抽象类、接口的综合小练习---运动员和教练案例
运动员和教练案例图解 文字分析和示例代码如下:
抽象方法 数据 测试类 成员方法 示例代码 -
Java实现运动员分组
有N个人参加100米短跑比赛。跑道为8条。程...
i++ java 标准输入 Java