接口和抽象类

接口

    接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

    1.优点

     一个类可以实现多个接口,接口可以让这个类不仅具有主类型的行为,而且具有其他的次要行为,比如所HashMap接口的主要类型是Map,而Cloneable接口是它具有一个次要类型,这个类型说明它可以安全的克隆。

    2.缺点

    如果向一个Java接口中加入一个新的方法,所有实现这个接口的类都要编写具体的实现。

 抽象类

    抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

    1.优点 

    具体类可以从抽象类中自动得到方法的默认实现。

    2.缺点

    一个类只能继承一个父类,所以抽象类作为类型定义工具的效能大打折扣。


抽象类和接口的区别

  • 抽象类可以包含部分方法的实现,这是抽象类优于接口的一个地方
  • Java是单继承的,每个类只能从一个抽象类继承,但是每个类可以实现多个接口,使用接口还可以实现混合类型的类。接口可以继承多个接口,即接口间可以多重继承。
  • 将类抽取出通用部分作为接口容易,要作为抽象类则不太方便,因为这个类有可能已经继承自另一个类。

    简而言之,抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊的抽象类。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值