Java中接口(interface)与抽象类(abstract class)的区别

接口与抽象类是支持抽象类定义的两种机制,他们既有不同点也有共同点,下面我们分开来讨论一下:

1.不同点

(1)接口是公开的,里面不能有私有变量或私有方法;而抽象类中可以有私有的变量和方法(注:如果是抽象方法,必须是public或者protected)。

(2)接口中的方法必须是抽象方法;而抽象类中不要求一定有抽象方法。

(3)在继承时,一个类可以继承多个接口;而一个类却只能继承一个抽象类。

(4)接口中不允许声明变量;而抽象类可以声明变量;

(5)接口中只有定义,不能有接口的实现;而抽象类可以有接口的实现。

(6)实现接口的关键字是implements,继承抽象类的关键字是extends。

2.相同点

(1)都不能被实例化。

(2)接口的实现类或抽象类的子类都只有实现了接口或者抽象类中 的方法后才能被实例化。

     

注;在JDK不断的更新之下,会出现不能理解的一幕,接口中可以声明非抽象方法。其实,它默认还是抽象类,需要在继承它的子类中去重写这个方法。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值