接口与继承大练习之乒乓球运动员与教练,篮球运动员与教练
题目:

关系图:

代码:
package Demon04;
/*
因为现在我不想让外界去直接创建人的对象
因为直接创建顶层父类人的对象此时是没有意义的
所以我就把他写成抽象的
*/
public abstract class Person {
private String name;
private int age;
public Person(){
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
运动员类:
package Demon04;
public abstract class Sporter extends Person{//定义成抽象的是因为它里面含有抽象方法
//抽象方法所在的类必须是抽象类
public Sporter() {
}
public Sporter(int age, String name) {
super(age, name);
}
public abstract void study();
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
教练类:
package Demon04;
public abstract class Coach extends Person{
public Coach() {
}
public Coach(int age, String name) {
super(age, name);
}
public abstract void teach();//因为乒乓球教练和篮球教练教的是不一样的,所以教这个方法用抽象方法
//因此所在的类必须是抽象类。
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
说英语接口:
package Demon04;
public interface SpeakEnglish {
public abstract void SpeakEnglish();
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
乒乓运动员类:
package Demon04;
public class PingPangSporter extends Sporter implements SpeakEnglish{
public PingPangSporter() {
}
public PingPangSporter(int age, String name) {
super(age, name);
}
@Override
public void SpeakEnglish() {
System.out.println("乒乓球运动员在说英语");
}
@Override
public void study() {
System.out.println("乒乓球运动员在学打乒乓球");
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
篮球运动员类:
package Demon04;
public class BasketballSporter extends Sporter{//构造方法每次别忘记写,alt加insert,全选回车
public BasketballSporter() {
}
public BasketballSporter(int age, String name) {
super(age, name);
}
@Override
public void study() {//方法重写,鼠标点击红线,alt加回车
System.out.println("篮球运动员在学习打篮球");
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
乒乓教练类:
package Demon04;
public class PingPangCoach extends Coach implements SpeakEnglish{
public PingPangCoach() {
}
public PingPangCoach(int age, String name) {
super(age, name);
}
@Override
public void teach() {
System.out.println("乒乓球教练在教打乒乓球");
}
@Override
public void SpeakEnglish() {
System.out.println("乒乓球教练在说英语");
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
篮球教练类:
package Demon04;
public class BasketballCoach extends Coach{
public BasketballCoach() {
}
public BasketballCoach(int age, String name) {
super(age, name);
}
@Override
public void teach() {
System.out.println("篮球教练在教打篮球");
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000")
Test类:
package Demon04;
public class Test {
public static void main(String[] args) {
//创建运动员或者教练的对象了
PingPangSporter pps=new PingPangSporter(23,"刘诗雯");
System.out.println(pps.getName()+", "+pps.getAge());
pps.study();
pps.SpeakEnglish();
BasketballSporter bbs=new BasketballSporter(23,"乔丹");
System.out.println(bbs.getName()+", "+bbs.getAge());
bbs.study();
PingPangCoach ppc=new PingPangCoach(35,"刘国梁");
System.out.println(ppc.getName()+", "+ppc.getAge());
ppc.teach();
ppc.SpeakEnglish();
}
}
System.out.println("00000000000000000000000000000000000000000000000000000000000000000000000000000000");
运行结果:
刘诗雯, 23
乒乓球运动员在学打乒乓球
乒乓球运动员在说英语
乔丹, 23
篮球运动员在学习打篮球
刘国梁, 35
乒乓球教练在教打乒乓球
乒乓球教练在说英语

浙公网安备 33010602011771号