我将教练和教练放在一块儿,共同继承教练类,教练类中有个抽象方法,就是教学,因此,必须在子类中重写这个方法,不同的教练也会有不同的教学方法,在子类中可以得到体现。将球员放在一块儿,共同继承球员类,球员类中的方法就是学习,也是一个抽象方法,也要求我们进行重写,可以分别写出不同球员学习的不同类。将说英语作为一个接口,将乒乓球队接入这个接口,可让乒乓球队类重写这个方法,逻辑清晰,方便快捷,以下是我的拙见,我写出来的一些粗糙代码,望点评。
public class FinalTest {
public static void main(String[] args) {
Basketballer b1=new Basketballer("james",35);
System.out.println(b1.getAge()+","+b1.getName());
Tableplayer t1=new Tableplayer();
t1.speak();
t1.study();
b1.study();
Basket b2=new Basket();
Table t2=new Table();
b2.teach();
t2.speak();
t2.teach();
}
}
这是测试类
package Exaple;
public 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;
}
}
这是父类Person。
public abstract class Coach extends Person {
public Coach() {
}
public Coach(String name, int age) {
super(name, age);
}
public abstract void teach();
}
这是教练的父类。
public abstract class Sportsman extends Person {
public Sportsman() {
}
public Sportsman(String name, int age) {
super(name, age);
}
public abstract void study();
}
这是球员类的父类。
public interface SpeakEnglish {
public abstract void speak();
}
这是接口“说英语”。
public class Table extends Coach implements SpeakEnglish {
public Table() {
}
public Table(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("乒乓球教练在教学");
}
@Override
public void speak(){
System.out.println("乒乓球教练在说英语");
}
}
这是乒乓球教练员类。
public class Basket extends Coach {
public Basket() {
}
public Basket(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("篮球教练在教学");
}
}
这是篮球教练员类。
public class Tableplayer extends Sportsman implements SpeakEnglish {
public Tableplayer() {
}
public Tableplayer(String name, int age) {
super(name, age);
}
@Override
public void speak() {
System.out.println("乒乓球运动员在说英语");
}
@Override
public void study() {
System.out.println("乒乓球运动员在学习打乒乓球");
}
}
这是乒乓球员类。
public class Basketballer extends Sportsman {
public Basketballer() {
}
public Basketballer(String name, int age) {
super(name, age);
}
@Override
public void study() {
System.out.println("篮球运动员在学习如何打篮球");
}
}
这是篮球运动员类。
这个题我觉得是很锻炼人的。