interface与抽象类

一.概念

接口(interface):可以看作一种特殊的抽象类,里面的方法都是抽象的,且不能有方法体,而且只能定义static final成员变量。

二.特点:

相同点:

(1)两者都是抽象的,不能实例化。

(2)interface实现类及abstract class 的子类,都必须要实现声明的抽象方法

不同点:

(1)一个类可以实现(implements)多个interface,但一个类只能继承(exends)一个abstract class

(2)interface强调特定功能的实现,具有哪些功能,而abstract class强调所属关系。

(3)尽管interface实现类及abstract class的子类都必须要实现相应的抽象方法,但实现的形式不同。interface中的每一个方法都是抽象方法,都只是声明的(declaration, 没有方法体),实现类必须要实现。而abstract class的子类可以有选择地实现(只实现其中的抽象方法,覆盖其中已实现了的方法,二者均实现)。

(4)interface是完全抽象的,只能声明方法,而且只能声明public的方法,不能声明private及protected的方法,不能定义方法体,也不能声明实例变量。

三、为什么Java中采用多接口而没有多继承?

    接口只定义了你做什么,而不关心你怎么做;

    如果是多继承,有可能两个类定义的两个方法是做同一件事情的,那么他们的子类就无法选择到底去用哪一个。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值