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

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

1.定义不同

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

接口

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

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

1)语法层面上

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

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

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

2)设计层面上

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

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

二者的选:

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

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

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容