实现接口 vs 继承类

1.接口和继承解决的问题不同

  • 继承的价值主要在于:解决代码的复用性和可维护性
  • 接口的价值主要在在于:设计好各种规范(方法),让其它类去实现这些方法

2.接口比继承更加灵活
接口比继承更加灵活,继承满足 is - a 关系,接口满足 like - a 关系
3.接口在一定程度上实现代码解耦

小结:当子类继承父类就自动拥有了父类的功能
如果子类需要扩展功能,可以通过实现接口的方式扩展
可以理解为实现接口时java单继承机制的一种补充

public class ExtendVsInterface {
    public static void main(String[] args) {
        litterMonkey litterMonkey = new litterMonkey("悟空");
        litterMonkey.climb();
        litterMonkey.fly();
        litterMonkey.swim();
    }
}

//父类
class monkey{
    private String name;

    public monkey(String name) {
        this.name = name;
    }

    public void climb(){
        System.out.println("猴子会爬树");
    }

    public String getName() {
        return name;
    }

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

//鸟的飞行方法
interface IA{
    void fly();
}

//游泳方法
interface IB{
    void swim();
}

//子类
class litterMonkey extends monkey implements IA,IB{

    public litterMonkey(String name) {
        super(name);
    }

    //实现鸟的飞行方法
    @Override
    public void fly() {
        System.out.println("猴子学会了鸟的飞行");
    }

    //实现游泳方法
    @Override
    public void swim() {
        System.out.println("实现游泳方法");
    }
}
全部评论

相关推荐

11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
牛客85811352...:1希音不知道算不算大厂 2完全符合,过得很舒服, 3确实只有杂活 领导找我续签到明年3、4月我要继续吗。主要是边实习边秋招这段时间还是有点累
什么是优秀的实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务