10-01 Java 類,抽象類,接口的綜合小練習--運動員和教練


運動員和教練的案例分析

 

 

 

運動運和教練的案例 代碼實現

/*
    教練和運動員案例
        乒乓球運動員和籃球運動員。
        乒乓球教練和籃球教練。
        為了出國交流,跟乒乓球相關的人員都需要學習英語。
        請用所學知識:
        分析,這個案例中有哪些抽象類,哪些接口,哪些具體類。
    
    整個分析過程,我是通過畫圖講解的。    
*/
//定義一個說英語的接口
interface SpeakEnglish {
    //說英語
    public abstract void speak();
}

//定義人的抽象類
abstract class Person {
    private String name;
    private int age;
    
    public Person() {}
    
    public Person(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 void sleep() {
        System.out.println("人都是要睡覺的");
    }
    
    //吃飯,運動員和教練吃的不一樣。這里使用抽象方法
    public abstract void eat();
}

//定義運動員抽象類
abstract class Player extends Person {
    public Player() {}
    
    public Player(String name,int age) {
        super(name,age);
    }
    
    //學習,乒乓器和籃球運動員學習的東西不一樣。這里使用抽象方法
    public abstract void study();
}

//定義教練抽象類
abstract class Coach extends Person {
    public Coach() {}
    
    public Coach(String name,int age) {
        super(name,age);
    }
    
    //教,乒乓器和籃球運動員教的東西不一樣。這里使用抽象方法
    public abstract void teach();
}

//定義乒乓球運動員具體類
class PingPangPlayer extends Player implements SpeakEnglish {
    public PingPangPlayer(){}
    
    public PingPangPlayer(String name,int age) {
        super(name,age);
    }
    
    //
    public void eat() {
        System.out.println("乒乓球運動員吃大白菜,喝小米粥");
    }
    
    //學習
    public void study() {
        System.out.println("乒乓球運動員學習如何發球和接球");
    }
    
    //說英語
    public void speak() {
        System.out.println("乒乓球運動員說英語");
    }
}

//定義籃球運動員具體類
class BasketballPlayer extends Player {
    public BasketballPlayer(){}
    
    public BasketballPlayer(String name,int age) {
        super(name,age);
    }
    
    //
    public void eat() {
        System.out.println("籃球運動員吃牛肉,喝牛奶");
    }
    
    //學習
    public void study() {
        System.out.println("籃球運動員學習如何運球和投籃");
    }
}

//定義乒乓球教練具體類
class PingPangCoach extends Coach implements SpeakEnglish {
    public PingPangCoach(){}
    
    public PingPangCoach(String name,int age) {
        super(name,age);
    }
    
    //
    public void eat() {
        System.out.println("乒乓球教練吃小白菜,喝大米粥");
    }
    
    //
    public void teach() {
        System.out.println("乒乓球教練教如何發球和接球");
    }
    
    //說英語
    public void speak() {
        System.out.println("乒乓球教練說英語");
    }
}

//定義籃球教練具體類
class BasketballCoach extends Coach {
    public BasketballCoach(){}
    
    public BasketballCoach(String name,int age) {
        super(name,age);
    }
    
    //
    public void eat() {
        System.out.println("籃球教練吃羊肉,喝羊奶");
    }
    
    //
    public void teach() {
        System.out.println("籃球教練教如何運球和投籃");
    }
}

class InterfaceDemo {
    public static void main(String[] args) {
        //測試運動員(乒乓球運動員和籃球運動員)
        //乒乓球運動員
        PingPangPlayer ppp = new PingPangPlayer();
        ppp.setName("王浩");
        ppp.setAge(33);
        System.out.println(ppp.getName()+"---"+ppp.getAge());
        ppp.eat();
        ppp.sleep();
        ppp.study();
        ppp.speak();
        System.out.println("----------------");
        //通過帶參構造給數據
        ppp = new PingPangPlayer("劉洋",36);
        System.out.println(ppp.getName()+"---"+ppp.getAge());
        ppp.eat();
        ppp.sleep();
        ppp.study();
        ppp.speak();
        System.out.println("----------------");
        
        
        
        //籃球運動員
        BasketballPlayer bp = new BasketballPlayer();
        bp.setName("姚明");
        bp.setAge(34);
        System.out.println(bp.getName()+"---"+bp.getAge());
        bp.eat();
        bp.sleep();
        bp.study();
        //bp.speak(); //沒有該方法
        
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM