当前位置: 首页 > news >正文

【Java面试笔记:基础】13.谈谈接口和抽象类有什么区别?

在 Java 中,接口(Interface)抽象类(Abstract Class) 都是实现多态和代码抽象的机制,但它们在设计目的、语法特性及使用场景上有显著差异。

1. 接口和抽象类的区别

接口(Interface)

定义:接口是对行为的抽象,是抽象方法的集合,用于定义 API 规范。
特点:

  • 不能实例化。
  • 不能包含非静态方法实现(Java 8 之前)。
  • 不能包含非常量成员,所有字段都是隐含的 public static final。
  • 可以包含静态方法(Java 8 引入)。
  • 可以包含默认方法(Java 8 引入)。
  • 可以定义函数式接口(Functional Interface,Java 8 引入)。
    用途:用于定义行为规范,实现多态和代码解耦。

抽象类(Abstract Class)

定义:抽象类是不能被实例化的类,用于代码重用。
特点:

  • 不能实例化。
  • 可以包含一个或多个抽象方法。
  • 可以包含非抽象方法。
  • 可以包含成员变量。
  • 可以被继承。
    用途:用于抽取相关类的共用方法实现或成员变量,通过继承实现代码复用。

核心区别对

相关文章:

  • Spring Boot 的配置加载顺序
  • socket编程基础
  • node.js 实战——(fs模块 知识点学习)
  • gem5教程第三章 向配置脚本添加缓存
  • 智启未来|艾博连科技加入奇瑞雄狮科技LION AI联合实验室
  • 机器视觉的智能手机屏贴合应用
  • leetcode-枚举
  • RabbitMQ 详解(核心概念)
  • 蓝桥杯 15.小数第n位
  • 【OSCP-vulnhub】Raven-2
  • 基于nodeJS代码的通过爬虫方式实现tiktok发布视频(2025年4月)
  • 算法题-图论
  • Java高级:数据库访问优化
  • 网络安全零基础培训 L1-7 Web基础和CSS渲染
  • JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
  • 【Project】基于spark-App端口懂车帝数据采集与可视化
  • Vue 3中如何封装API请求:提升开发效率的最佳实践
  • Geek强大的电脑卸载软件工具,免费下载
  • Winform实现条码打印
  • Vue生命周期详细解析
  • 特写|“三峡千古情”出圈,一场演出给宜昌留下更多游客
  • 泽连斯基提议乌俄“立即、全面和无条件”停火
  • 欧盟数字法开出首张罚单:苹果和Meta合计被罚7亿欧元
  • “未来3天公布”,特朗普俄乌“和平计划”是什么?普京泽连斯基什么态度?
  • 校友伉俪捐赠10亿元!成立复旦大学学敏高等研究院
  • 长征十梦舟揽月稳步推进