接口和抽象类的练习
需求分析:
教练和运动员案例:
(1)人员:乒乓球运动员和篮球运动员。乒乓球教练和篮球教练。
(2)为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识分析,设计类和接口。
1、声明Person抽象类,没有抽象方法,
但有属性,姓名等,有方法,吃饭void eat()、睡觉void sleep()等
2、声明教练Coach抽象类,他继承Person类,并增加一个void teach()抽象方法
它有两个子类:兵兵球教练和篮球教练,分别实现void teach()方法
兵兵球教练:打印“教授如何打乒乓球”
篮球教练:打印“教授如何打篮球”
3、声明运动员Sportsman抽象类,他继承Person类,并增加一个void play()抽象方法
它有两个子类:乒乓球运动员和篮球运动员,分别实现void play()方法
乒乓球运动员:打印“打乒乓球”
篮球运动员:打印“打篮球”
4、声明一个接口LearningEnglish,包含抽象方法void learn(),
它有两个实现类:乒乓球教练和乒乓球运动员,并分别实现void learn()方法
乒乓球教练:打印“学习关于用英语交流教学问题”
乒乓球运动员:打印“学习关于用英语交流比赛问题”
5、声明一个Manager类,有一个Person数组,
(1)在无参构造器中,创建这个数组对象,并初始化数组的元素,
里面有乒乓球运动员和篮球运动员、乒乓球教练和篮球教练对象。
(2)声明一个方法,返回所有教练
(3)声明一个方法,返回所有运动员
(4)声明一个方法,返回所有要用英语交流的人
(5)声明一个方法,返回所有人
6、在测试类中测试
(1)打印所有人的信息
(2)获取所有教练,调用他们的teach()
(3)获取所有运动员,调用他们的play()
(4)获取所有要用英语交流的人,调用他们的learn()
代码
1、声明Person抽象类,没有抽象方法,
但有属性,姓名等,有方法,吃饭void eat()、睡觉void sleep()等
/*
* 1、声明Person抽象类,没有抽象方法,
但有属性,姓名等,有方法,吃饭void eat()、睡觉void sleep()等
*/
public abstract class Person {
private String name;
public Person() {
super();
}
public Person(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
@Override
public String toString() {
return "姓名:" + name;
}
}
2、声明教练Coach抽象类,他继承Person类,并增加一个void teach()抽象方法
它有两个子类:兵兵球教练和篮球教练,分别实现void teach()方法
兵兵球教练:打印“教授如何打乒乓球”
篮球教练:打印“教授如何打篮球”
/*
* 声明教练Coach抽象类,他继承Person类,并增加一个void teach()抽象方法
它有两个子类:兵兵球教练和篮球教练,分别实现void teach()方法
兵兵球教练:打印“教授如何打乒乓球”
篮球教练:打印“教授如何打篮球”
*/
public abstract class Coach extends Person {
public Coach() {
super();
// TODO Auto-generated constructor stub
}
public Coach(String name) {
super(name);
// TODO Auto-generated constructor stub
}
public abstract void teach();
}
public class BasketballCoach extends Coach {
public BasketballCoach() {
super();
// TODO Auto-generated constructor stub
}
public BasketballCoach(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void teach