java中接口和抽象类的区别

导读:本篇文章讲解 java中接口和抽象类的区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是这个对象是什么,接口表示的是这个对象能做什么。

java抽象类(abstract class)是为了继承而存在的,接口(interface)就是标志类的类别。

java接口和java抽象类都是抽象类型,是抽象层的具体体现。

 

相同点:

  • 接口和抽象类都可以作为引用类型。
  • 若一个类实现了某个抽象类或者某一接口,都必须对其中的抽象方法进行全部实现,否者该类仍需声明为抽象类。

不同点:

  • 一个类只能继承一个抽象类(单继承),一个类可以实现任意多个java接口。
  • java抽象类可以提供某些方法的具体实现,java接口不可以。
  • 有抽象方法的类一定是抽象类,抽象类当中可以有非抽象方法,接口当中的方法全部是抽象方法。
  • 抽象类中可以定义构造器,接口当中不可以定义构造器。
  • 抽象类中的成员可以是private,default,protected,public类型的,接口中的成员全是public类型的。
  • 抽象类中可以包含静态方法,接口中不能有静态方法。
  • 抽象类中可以定义成员变量,接口当中定义的成员变量实际上就是常量。

相比较来说抽象类的速度比接口的速度要快,因为使用接口需要时间去寻找在类中具体实现的方法。

向抽象类和接口当中添加新方法时,抽象类中可以提供默认的实现,无需改动已有的代码。若接口当中添加了新的方法,但凡实现该接口的类就必须进行改变,实现该接口当中的所有方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115850.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!