抽象類,接口,多態整合案例

繼承知識點:

類 :

只能單繼承  

一個類可以是多個類的超類(父類)   但一個類不用繼承多個(超類)父類

注:抽象類也屬於類,所以繼承時也和類繼承一樣

 

接口:

可以單繼承 也可以多繼承

一個接口可以由多個接口繼承,也可以繼承多個接口

 

面試題:Java中是否有多繼承? 有多繼承,接口可以

 

 

 

抽象類,接口,多態整合案例:

 

抽象類:人

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:38
 * description:人類 抽象類
 */
public abstract class Person {
    private String name;
    private int 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();

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

抽象類:運動員 繼承 人類

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public abstract class Player extends Person{
    public abstract void learn();
}

 

 

抽象類:教練 繼承 人類

 

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public abstract class Coach extends Person{
    public abstract void teach();
}

 

普通類:籃球運動員 繼承 抽象類運動員

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class BasketballPlayer extends Player{
    @Override
    public void learn() {
        System.out.println("籃球運動員 學習");
    }

    @Override
    public void eat() {
        System.out.println("籃球運動員 吃飯");
    }
}

 

接口:說英語

package com.xqx.demo;

public interface SpeakEnglish {
    public void speakEnglish();
}

 

普通類:乒乓球運動員 繼承 抽象類運動員 實現說英語接口

 

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class PingpangballPlayer extends Player implements SpeakEnglish{
    @Override
    public void learn() {
        System.out.println("乒乓球運動員 學習");
    }

    @Override
    public void eat() {
        System.out.println("乒乓球運動員 吃飯");
    }

    @Override
    public void speakEnglish() {
        System.out.println("乒乓球運動員 說英語");
    }
}

 

普通類:籃球教練 繼承 抽象類教練

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class BasketballCoach extends Coach {
    @Override
    public void teach() {
        System.out.println("籃球教練 教學");
    }

    @Override
    public void eat() {
        System.out.println("籃球教練 吃飯");
    }
}

 

普通類:乒乓球教練 繼承 抽象類教練 實現說英語接口

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class PingpangballCoach extends Coach implements SpeakEnglish{

    @Override
    public void teach() {
        System.out.println("乒乓球教練 教學");
    }

    @Override
    public void eat() {
        System.out.println("乒乓球教練 吃飯");
    }

    @Override
    public void speakEnglish() {
        System.out.println("乒乓球教練 說英語");
    }
}

 

測試類:

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:37
 * description:
 */
public class Test {
    public static void main(String[] args) {
        //創建乒乓球教練類對象
        PingpangballCoach pingpangballCoach = new PingpangballCoach();
        pingpangballCoach.setName("風清揚");
        pingpangballCoach.setAge(99);
        System.out.println(pingpangballCoach.toString());
        pingpangballCoach.eat();
        pingpangballCoach.teach();
        pingpangballCoach.speakEnglish();
        System.out.println("-----------------------");

        //創建乒乓球運動員類對象
        PingpangballPlayer pingpangballPlayer = new PingpangballPlayer();
        pingpangballPlayer.setName("令狐沖");
        pingpangballPlayer.setAge(18);
        System.out.println(pingpangballPlayer.toString());
        pingpangballPlayer.eat();
        pingpangballPlayer.learn();
        pingpangballPlayer.speakEnglish();
        System.out.println("-----------------------");

        // 創建籃球教練類 對象
        BasketballCoach basketballCoach = new BasketballCoach();
        basketballCoach.setName("老陽");
        basketballCoach.setAge(23);
        System.out.println(basketballCoach.toString());
        basketballCoach.eat();
        basketballCoach.teach();
        System.out.println("-----------------------");

        // 創建籃球運動員類 對象
        BasketballPlayer basketballPlayer = new BasketballPlayer();
        basketballPlayer.setName("倖權祥");
        basketballPlayer.setAge(8);
        System.out.println(basketballPlayer.toString());
        basketballPlayer.eat();
        basketballPlayer.learn();
        System.out.println("-----------------------");
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章