day1-接口与抽象类的代码实现

本文通过乒乓球运动员和篮球运动员的案例,介绍了接口与抽象类的应用。详细解释了如何使用抽象类来描述共性特征,以及如何利用接口实现功能扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日总结:
1、快捷键学习 Alt+insert  构造方法,重写父类方法
2、问题分析思路与: 先具体再抽象
    代码实现:      先抽象在具体
3、抽象类:共性,需要进行执行的方法描述声明
   接口:可扩展性功能
 4、构造方法: 对对象进行初始化

自己写一个对于接口与抽象类相关的代码:教练和运动员案例

import javax.print.attribute.standard.MediaSize;

/*
    教练和运动员案例
        乒乓球运动员和篮球运动员
        乒乓球教练和篮球教练

      为了出国交流,跟乒乓球 相关的人员都需要学习英语

   先分析:
   弄清和从共性出发,哪些可以作为抽象类、接口、具体类
   抽象类: 人(共性)
            教练
    接口: 学英语(体会接口作为扩展性功能的描述)
    具体类:具体运动员,具体教练


 */
//接口:学英语
interface  EnlishLearning{
    public abstract void speak();
}

abstract  class Person{
    private int age;
    private  String name;
    public boolean female;

    public Person() {
    }

    public Person(int age, String name, boolean female) {
        this.age = age;
        this.name = name;
        this.female = female;
    }

    public boolean isFemale() {
        return female;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setFemale(boolean female) {
        this.female = female;
    }

    public void sleep(){
        System.out.println("睡觉觉咯");
    }
    public abstract void  eat();
}

abstract class  Player extends Person{
    public Player() {
    }

    public Player(int age, String name, boolean female) {
        super(age, name, female);
    }

    public abstract void learnBall();
}

abstract  class  Coach extends Person{
    public Coach(){}

    public Coach(int age, String name, boolean female) {
        super(age, name, female);
    }

    public abstract void teachBall();
}

//定义具体类
    //兵乓球运动员
class  PingPangPlayer extends Player implements EnlishLearning{
        public  PingPangPlayer(){}

        public PingPangPlayer(int age, String name, boolean female) {
            super(age, name, female);
        }

    //重写抽象方法
    public void eat(){
        System.out.println("乒乓球运动员吃大白菜喝小米粥");
    }
    //重写抽象方法
    public void learnBall(){
        System.out.println("兵乓球运动员学习悬浮球和发球");
    }
    //实现接口的具体方法
    public  void speak(){
        System.out.println("出国就要学英语,引领世界");
    }
}

//定义具体类
//篮球运动员
class   BasketPlayer extends Player {
    public  BasketPlayer(){}

    public BasketPlayer(int age, String name, boolean female) {
        super(age, name, female);
    }
    //重写抽象方法  override
        @Override   //用快捷键Alt+insert键快速敲出
    public void eat() {
        System.out.println("篮球运动员吃小白菜喝大米粥");
    }
//    重写继承的方法  implements
    @Override
    public void learnBall() {
        System.out.println("篮球运动员学习传球");
    }
}

class PingpangCoach extends Coach implements EnlishLearning{
    public PingpangCoach(){}

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

    public  void  eat(){
        System.out.println("乒乓球教练吃的很清淡");
    }
    public void speak(){
        System.out.println("乒乓球教练学英语啦");
    }

    @Override
    public void teachBall() {
        System.out.println("乒乓球教练教悬浮球");
    }
}
class BasketballCoach extends Coach {
    public BasketballCoach(){}

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

    //重写eat()
    public void eat(){
        System.out.println("篮球教练喝牛奶");
    }
    public void teachBall(){
        System.out.println("篮球教练教快打和传球");
    }
}


public class InterfaceAndAbstract {
    public static void main(String[] args) {
        PingPangPlayer pa =new PingPangPlayer(32,"张继科",false);
        pa.eat();
        pa.learnBall();
        pa.speak();
        pa.sleep();
        System.out.println("--------------------");

        //篮球运动员的测试
        BasketPlayer Ba= new BasketPlayer(40,"姚明",false);
        Ba.eat();
        Ba.learnBall();
        Ba.sleep();
        System.out.println("-------");
        System.out.println("-------");

        //乒乓球教练的测试
        PingpangCoach pca= new PingpangCoach(23,"小旺仔",false);
        pca.eat();
        pca.teachBall();
        pca.speak();
        pca.sleep();
        System.out.println("-------");
        //篮球教练的测试
        BasketballCoach Bca= new BasketballCoach(44,"中鑫",false);
        Bca.eat();
        Bca.teachBall();
        Bca.sleep();
        System.out.println("-------");
        System.out.println("-------");

    }
    }




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值