java抽象类实现接口

阅读集合框架的源码的时候,发现AbstractConllection继承自Collection,我不太明白为什么使用抽象类实现接口,但是经过我查阅资料,然后自己又写了个demo,基本弄明白这么写的好处了,而且,我感觉,这就是抽象工厂模式。

好处就是,假设接口定义了10多个方法,但是好多方法的实现都是固定不变的,唯独有那么一两个需要实现类写出单独的逻辑,这种情况就很恶心,如果直接实现这个接口,好多方法就得复制一遍,造成代码冗余。所以,我们先使用一个抽象类实现这个接口。我们需要注意,抽象类可以实现接口的所有方法,也可以一个都不实现。接下来看我们的demo

Trainee接口有四个方法,sing(),jump(),rap(),platBasketball().但是我只想实现platBasketball().

上代码

package com.study.basicJava.abstractClass;

public interface Trainee {

    void sing();


    void jump();


    void rap();


    void playBasketball();
}

接着,使用抽象类继承接口

package com.study.basicJava.abstractClass;

public abstract class AbstractTrainee implements Trainee {
    public void sing(){
        System.out.println("唱,");
    }
    public void jump(){
        System.out.println("跳,");
    }
    public void rap() {
        System.out.println("rap,");
    }
    public abstract void playBasketball();
}

接着,是我自己的普通实现类

package com.study.basicJava.abstractClass;

public class Cxk extends AbstractTrainee {

    @Override
    public void playBasketball() {
        System.out.println("我是NBA**,喜欢打篮球");
    }
}

然后,看demo

package com.study.basicJava.abstractClass;

public class Demo01 {
    public static void main(String[] args) {
        AbstractTrainee trainee = new Cxk();
        System.out.print("我喜欢");
        trainee.sing();
        trainee.jump();
        trainee.rap();
        trainee.playBasketball();
    }
}

程序运行结果:

溜了溜了。。害怕律师函警告

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值