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

题目:

关系图:

代码:
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
乒乓球教练在教打乒乓球
乒乓球教练在说英语

posted @ 2025-04-22 22:28  骆驼刺破仙人掌007  阅读(16)  评论(0)    收藏  举报