当前位置: 首页 > 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)

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

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

核心区别对

http://www.dtcms.com/a/150507.html

相关文章:

  • 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生命周期详细解析
  • AI语音助手自定义角色百度大模型 【全新AI开发套件掌上AI+4w字教程+零基础上手】
  • Android SDK 下载及配置 --- app笔记
  • 【分布式锁通关指南 09】源码剖析redisson之公平锁的实现
  • [KVM] KVM挂起状态恢复失败与KVM存储池迁移
  • Spring JDBC 的开发步骤(注解方式)
  • 私有知识库 Coco AI 实战(三):摄入 Elasticsearch 官方文档
  • Go语言学习笔记(一)
  • 【论文阅读】Dual-branch Cross-Patch Attention Learning for Group Affect Recognition
  • 代理模式:控制对象访问的中间层设计
  • 论文阅读 | 大模型工具调用控制的策略优化