JAVA接口和继承的区别

情景,假如有一个动物animal类,那么猴子monkey自然是animal的子类,形成is-animal的关系,猴子会爬树,爬树是猴子拥有的方法,但如果想给猴子扩展其他功能,比如飞翔,游泳,这时可以通过接口去扩展其功能。

小结: 当子类继承了父类,就自动的拥有父类的功能

// 如果子类需要扩展功能,可以通过实现接口的方式扩展.

// 可以理解 实现接口 是 对 java 单继承机制的一种补充.

public class ExtendsVsInterface {
    public static void main(String[] args) {
    LittleMonkey wuKong = new LittleMonkey("悟空");
    wuKong.climbing();
    wuKong.swimming();
    wuKong.flying();
    }
}


//猴子
class Monkey {

public Monkey(String name) {
this.name = name;
}
public void climbing() {
System.out.println(name + " 会爬树...");
}
public String getName() {
return name;
}
}

//接口
interface Fishable {
void swimming();
}

interface Birdable {
void flying();
}

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

class LittleMonkey extends Monkey implements Fishable,Birdable {
public LittleMonkey(String name) {
super(name);
}
@Override
public void swimming() {
System.out.println(getName() + " 通过学习,可以像鱼儿一样游泳...");
}
@Override
public void flying() {
System.out.println(getName() + " 通过学习,可以像鸟儿一样飞翔...");
}
}

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

1.继承的价值主要在于解决代码的复用性和可维护性的问题

2.接口的主要价值在于设计,设计好各种规范(方法),让其他类去实现这些方法,即更加的灵活。

接口比继承更加灵活

1.接口满足like-a(像什么)的关系,继承满足is-a(是什么)的关系。

2.接口在一定程度上解决了代码的解耦(接口规范性+动态绑定机制)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值