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

在这里插入图片描述
在这里插入图片描述

说英语接口

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值