JAVA抽象类和接口类的区别

JAVA抽象类和接口类的区别

  • 1、声明方式不同。抽象类为abstract class,接口类为interface
  • 2、继承抽象类关键字为extends,实现接口关键字为implements
  • 3、继承抽象类仅支持单继承,实现接口可以多实现
  • 单继承:classB Extends classA
  • 接口多实现:Interface implements Interface0, Interface1, interface2……
  • java中为什么要单继承,多实现?
    • 若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。
  • 为什么可以多实现呢?
    • 通过实现接口拓展了类的功能,若实现的多个接口中有重复的方法也没关系,因为实现类中必须重写接口中的方法,所以调用时还是调用的实现类中重写的方法。那么各个接口中重复的变量又是怎么回事呢?

以下区别均可引用 区别3的原因讲解去理解为什么。


  • 4、抽象类可以有构造方法,接口中不能有构造方法。
  • 5、抽象类可以有成员变量,接口类只能有常量(static)。
  • 6、抽象类可以有成员方法,接口中只可以有抽象方法
  • 7、抽象类中增加方法可以影响子类,接口中增加方法通常影响子类(JDK1.8增加default方法不影响子类)
  • 8、从JDK1.8开始允许接口中出现非抽象方法,但需要default关键字修饰。
    • 主要减少了代码牵一发而动全身`的弊端.
    • 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeEggs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值