天天看點

案例:運動員和教練(接口和抽象類)

案例:運動員和教練(接口和抽象類)
案例:運動員和教練(接口和抽象類)

說英語接口

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