接口和抽象类有什么区别?
一、接口和抽象类的区别
1.接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
2.实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
3.接口强调特定功能的实现,而抽象类强调所属关系。
4.接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
5.接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。
延伸阅读:
二、接口是什么
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式,就如面向对象程序设计提供的多重抽象化。接口可能也提供某种意义上的在讲不同语言的实体之间的翻译,诸如人类与电脑之间。因为接口是一种间接手段,所以相比起直接沟通,会引致些额外负担。人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。
以上就是关于接口和抽象类有什么区别的内容希望对大家有帮助。

猜你喜欢LIKE
相关推荐HOT
更多>>
大数据分析与数据分析有什么区别?
一、大数据分析与数据分析的区别大数据分析与数据分析有以下区别:1、数据规模不同大数据分析通常处理海量数据,而数据分析则处理小规模数据。2...详情>>
2023-10-11 23:04:34
地址传递和值传递有哪些区别?
一、地址传递和值传递的区别地址传递和值传递都是计算机编程中常用的参数传递方式,它们之间的主要区别如下:1、定义不同值传递:将函数调用中...详情>>
2023-10-11 20:05:08
nodeJs的多线程和一般erlang?
一、nodeJs的多线程和一般erlangnodeJs的多线程Node.js 通过提供 cluster、child_process API 创建子进程的方式来赋予Node.js “多线程”能力。...详情>>
2023-10-11 18:21:42
java中 get和post 区别?
一、java中 get和post 区别1.首先get是用来获取数据的,post是向服务器提交数据。2.get传递形式是通过URL进行传输,以key=value的格式,添加在u...详情>>
2023-10-11 17:16:19热门推荐
大数据分析与数据分析有什么区别?
沸原型模式和应用拷贝构造函数、重载赋值操作符有什么区别?
热原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?
热dos和windows的区别?
新c语言char和int区别?
组策略和组策略对象有什么区别?
地址传递和值传递有哪些区别?
Java中的接口和API 有哪些区别?
手机和计算机软件编程的区别?
nodeJs的多线程和一般erlang?
ArrayList和LinkedList区别?
java中 get和post 区别?
JSP和Blazor有什么区别?
分布式与集群的区别是什么?
技术干货






