品易云推流 关闭
文章详情页
文章 > java基础 > java基础:接口和类如何区分?

java基础:接口和类如何区分?

头像

小妮浅浅

2020-12-24 17:12:273041浏览 · 0收藏 · 0评论

有些小伙伴在使用的时候,把抽象类和接口进行了混淆,因为它们都和类有所联系。考虑到初学java对于定义和作用的理解不够深刻,又或者在概念上没有系统的对比过,这里小编把它们的概念整理出来,并进行了分析对比。还没有弄清楚它们之间区别的小伙伴,可以看看下面的内容。

1.定义不同

类是具有相同属性和服务的一组对象的集合。为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务(功能)两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,应该有一个类名并包括属性说明和服务说明两个主要部分。

接口

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合(接口里面都是抽象方法),接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

2.作用区别,以抽象类为例

1)语法层面上

接口中不能有 public 和 protected 修饰的方法,抽象类中可以有。

接口中的变量只能是隐式的常量,抽象类中可以有任意类型的变量。

一个类只能继承一个抽象类,但却可以实现多个接口。

2)设计层面上

抽象类是对类的一种抽象,继承抽象类的类和抽象类本身是一种 is-a 的关系。

接口是对类的某种行为的一种抽象,接口和类之间并没有很强的关联关系,所有的类都可以实现 Serializable 接口,从而具有序列化的功能。

二者的选:

  • 优先选用接口,尽量少用抽象类;

  • 需要定义子类的行为,又要为子类提供共性功能时才选用抽象类

以上就是在java中关于接口和类的区分,鉴于类的模块比较大,我们挑选了具有代表性的抽象类进行比较,希望对大家有所帮助。更多Java学习指路:js教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图