案例:运动员和教练(接口和抽象类)_ide


案例:运动员和教练(接口和抽象类)_测试类_02

说英语接口

package Demo;
//说英语的接口
public interface SpeakEnglish {
public abstract void speak();
}

抽象人类

package Demo;
//抽象人类
public abstract class Human {
private String name;
private int age;

public Human(){}
public Human(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;
}
public abstract void eat();

}

教练类

package Demo;

public abstract class Coach extends Human{

public Coach() {
}
public Coach(String name, int age) {
super(name, age);
}
public abstract void teach();
}

抽象运动员类

package Demo;
public abstract class Player extends Human{
public Player() {
}
public Player(String name, int age) {
super(name, age);
}
public abstract void study();
}

乒乓球运动员类

package Demo;

public class PingpangPlayer extends Player implements SpeakEnglish{
public PingpangPlayer() {
}
public PingpangPlayer(String name, int age) {
super(name, age);
}
@Override
public void study() {
System.out.println("乒乓球运动员学习乒乓球");
}
@Override
public void eat() {
System.out.println("乒乓球运动员吃菜");
}

@Override
public void speak() {
System.out.println("乒乓球运动员说英语");
}
}

篮球运动员类

package Demo;

public class BasketballPlayer extends Player {

public BasketballPlayer() {
}

public BasketballPlayer(String name, int age) {
super(name, age);
}

@Override
public void study() {
System.out.println("篮球运动员学篮球");
}

@Override
public void eat() {
System.out.println("篮球运动员吃肉");
}
}

篮球教练类

package Demo;

public class BasketballCoach extends Coach{
public BasketballCoach() {
}

public BasketballCoach(String name, int age) {
super(name, age);
}

@Override
public void eat() {
System.out.println("篮球教练吃羊肉,喝羊奶");
}
@Override
public void teach() {
System.out.println("篮球教练教如何运球和投篮");
}
}

乒乓球教练类

package Demo;

public class PingpangCoach extends Coach implements SpeakEnglish{

public PingpangCoach() {
}
public PingpangCoach(String name, int age) {
super(name, age);
}

@Override
public void teach() {
System.out.println("乒乓球教练教乒乓球");
}
@Override
public void eat() {
System.out.println("乒乓球教练吃肉喝酒");
}

@Override
public void speak() {
System.out.println("乒乓球教练会说英语");
}

}

乒乓球运动员

package Demo;

public class PingpangPlayer extends Player implements SpeakEnglish{
public PingpangPlayer() {
}
public PingpangPlayer(String name, int age) {
super(name, age);
}
@Override
public void study() {
System.out.println("乒乓球运动员学习乒乓球");
}
@Override
public void eat() {
System.out.println("乒乓球运动员吃菜");
}

@Override
public void speak() {
System.out.println("乒乓球运动员说英语");
}
}

测试类

package Demo;

public class PersonDemo {
public static void main(String[] args) {
PingpangCoach p1 = new PingpangCoach();
p1.setAge(30);
p1.setName("乒乓教练1");
System.out.println(p1.getName()+","+p1.getAge());
p1.teach();
p1.speak();
p1.eat();
PingpangCoach p2 = new PingpangCoach("乒乓教练2",32);
System.out.println(p2.getName()+","+p2.getAge());
p2.teach();
p2.speak();
p2.eat();
System.out.println("-----------------");

PingpangPlayer pp1 = new PingpangPlayer();
pp1.setName("乒乓运动员1");
pp1.setAge(20);
System.out.println(pp1.getName()+","+pp1.getAge());
pp1.study();
pp1.speak();
pp1.eat();

PingpangPlayer pp2 = new PingpangPlayer("乒乓球运动员2",21);
pp2.setName("乒乓运动员1");
pp2.setAge(20);
System.out.println(pp2.getName()+","+pp2.getAge());
pp2.study();
pp2.speak();
pp2.eat();


}
}

运行结果:

乒乓教练1,30
乒乓球教练教乒乓球
乒乓球教练会说英语
乒乓球教练吃肉喝酒
乒乓教练2,32
乒乓球教练教乒乓球
乒乓球教练会说英语
乒乓球教练吃肉喝酒
-----------------
乒乓运动员1,20
乒乓球运动员学习乒乓球
乒乓球运动员说英语
乒乓球运动员吃菜
乒乓运动员1,20

参考链接:
​​​ https://www.bilibili.com/video/BV18J411W7cE/?p=186​