考虑过程:
测试类A(MainClass):
public class MainClass { public static void main(String[] args) { Tbasketball lan=new Tbasketball("兰老师",23); lan.speak(); lan.teach(); Tpingpang ping = new Tpingpang("平老师",44); ping.speak(); ping.teach(); Sbasketball zhang = new Sbasketball("张三",15); zhang.study(); zhang.speak(); Spingpang li = new Spingpang("李四",18); li.study(); li.speak(); } }
接口类B:SpeakE类(最好在具体类实现)
public interface SpeakE { public abstract void speak(); }
Person最大父类:(Teacher类+Student类)(抽象类)
public abstract class Person { private String name; private int 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; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public Person(){} public Person(String name,int age){ this.age = age; this.name = name; } public void eat(){ System.out.println(this.getName()+"在吃饭"); }; }
Teacher类1:(1.1 Tbasketball类+1.2 Tpingpang类)(抽象类)
public abstract class Teacher extends Person { public Teacher(){} public Teacher(String name,int age){ super(name,age); } public abstract void teach(); }
1.1Tbasketball类:(具体类)
public class Tbasketball extends Teacher implements SpeakE{ public Tbasketball(){} public Tbasketball(String name,int age){ super(name,age); } @Override public void teach() { System.out.println(this.getAge()+"的"+this.getName()+"教篮球"); } @Override public void speak() { System.out.println("篮球"+this.getName()+"说英语"); } }
1.2Tpingpang类:(具体类)
public class Tpingpang extends Teacher implements SpeakE{ public Tpingpang(){} public Tpingpang(String name,int age){ super(name,age); } @Override public void teach() { System.out.println(this.getAge()+"的"+this.getName()+"教乒乓球"); } @Override public void speak() { System.out.println("乒乓球"+this.getName()+"说英语"); } }
2Student(2.1Sbasketball类+2.2Spingpang类)(抽象类)
public abstract class Student extends Person { public Student(){} public Student(String name,int age){ super(name,age); } public abstract void study(); }
2.1Sbasketball类:(具体类)
public class Sbasketball extends Student implements SpeakE{ public Sbasketball(){} public Sbasketball(String name,int age){ super(name,age); } @Override public void study() { System.out.println(this.getAge()+"的"+this.getName()+"学习篮球"); } @Override public void speak() { System.out.println(this.getName()+"同学边打篮球边学英语"); } }
2.2Spingpang类:(具体类)
public class Spingpang extends Student implements SpeakE{ public Spingpang(){} public Spingpang(String name,int age){ super(name,age); } @Override public void study() { System.out.println(this.getAge()+"的"+this.getName()+"学习乒乓球"); } @Override public void speak() { System.out.println(this.getName()+"同学边打乒乓球边学英语"); } }
运行结果:
篮球兰老师说英语
23的兰老师教篮球
乒乓球平老师说英语
44的平老师教乒乓球
15的张三学习篮球
张三同学边打篮球边学英语
18的李四学习乒乓球
李四同学边打乒乓球边学英语