接口和抽象类的关系和区别

首先这2者都不可以创建对象,但是是可以创建引用的,都可以创建引用将实现类的对象传给他

区别:

1.抽象类只可以单继承,而接口可以多实现(抽象类的子类只能有一个父类,而接口的子类可以实现多个接口,其实本质是java不能多继承,)
2.接口中必须都是抽象方法,而抽象类可以有抽象方法,也可以有普通方法
3.接口中无构造方法,不可继承,可以实现,而抽象类中,可以有构造方法,但是不可以实例化
4.抽象类的方法中不能使用final,static,private去修饰,但是接口中确是默认使用这些去修饰除了private

为什么要有接口?为什么不直接用抽象类呢?

① 一个类除继承另外一个类,还可以实现接口;
class IAImpl extends java.util.Arrylist implement IA{}
继承类 实现接口
这样可以实现变相的多继承。
② 一个类只能继承另外一个类,但是它可以实现多个接口,中间用“,”隔开。
例:Implements IA,IB
所谓实现一个接口,就是指实现接口中的方法。
③ 接口和接口之间可以定义继承关系,并且接口之间允许多继承。
例:interface IC extends IA,IB{};

接口和多态都为 JAVA 技术的核心。
接口实际上是定义一个规范、标准。
① 通过接口可以实现不同层次、不同体系对象的共同属性;
通过接口实现 write once as anywhere.
以 JAVA 数据库连接为例子:JDBC 制定标准;数据厂商实现标准;用户使用标准。
接口通常用来屏蔽底层的差异。
② 接口也因为上述原因被用来保持架构的稳定性。

二者特点:

前面已经提到过,抽象class在Java语言中体现了一种继承关系,要想使得 继承关系合理,父类和派生类之间必须存在"is-a"关系,即父类和派生类在概念本质上应该是相同的。对于interface来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的, 仅仅是实现了interface定义的契约而已而interface表示的是"like-a"关系

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值