某国家队有队员(member)数名,包括运动员(player)和教练(coach),其中运动员和教练都有自己的姓名(name)、年龄(age)、身高(height)、体重(weight)属性,都要去参加比赛(competition),但二者不同的是,教练参加比赛是为了指导运动员,而运动员参加比赛是与其他选手PK。且为了出国交流,教练需要学习英语(learnEnglish)。要求利用抽象类、多态和接口实现,并在测试类(Test)中进行测试。
提示:
① 队员(member)是抽象父类,包含姓名(name)、年龄(age)、身高(height)、体重(weight)属性,包含抽象方法(competition),具体实现由子类完成。
② 学习英语(learnEnglish)是接口,包含一个抽象方法。
③ 运动员(player)和教练(coach)是队员(member)的子类,同时教练(coach)需要实现英语(learnEnglish)。
详细代码实现如下,望采纳
public abstract class Member {
private String name;
private int age;
private double height;
private double weight;
public Member(String name, int age, double height, double weight) {
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
}
public abstract void competition();
}
public interface LearnEnglish {
void learnEnglish();
}
public class Player extends Member {
public Player(String name, int age, double height, double weight) {
super(name, age, height, weight);
}
@Override
public void competition() {
// PK其他选手
}
}
public class Coach extends Member implements LearnEnglish {
public Coach(String name, int age, double height, double weight) {
super(name, age, height, weight);
}
@Override
public void competition() {
// 指导运动员
}
@Override
public void learnEnglish() {
// 学习英语
}
}
public class Test {
public static void main(String[] args) {
Member player = new Player("张三", 25, 180.0, 80.0);
Member coach = new Coach("李四", 35, 175.0, 75.0);
player.competition();
coach.competition();
((Coach) coached).learnEnglish();
}
}
abstract class member{
String name;
int age;
float height;
float weight;
abstract void competition();
}
interface learnEnglish{
abstract void learn();
}
class player extends member{
void competition(){
}
}
class coach extends member implements learnEnglish{
void competition(){
}
public void learn(){
}
}