JavaSE/抽象类与接口

简介: JavaSE/抽象类与接口

博客制作不易,欢迎各位点赞👍+收藏⭐+关注



前言

为了更加深入的学习JavaSE这门语言,抽象类与接口是我们必须要学习的知识。本文使用代码+案例的形式介绍抽象类与接口。


一、什么是抽象类

如果一个类当中没有足够的信息描述一个具体的对象,那么该类称之为抽象类。
使用abstract关键字来定义抽象类。

1.案例代码

比如:"Doroom"类

abstract class Doroom{
    abstract void testa();
    void testb(){
        System.out.println("testb");
    }
}

2.注意事项

在该类中:

  • 抽象类必须被abstract修饰;
  • 可以包含abstract修饰的方法,也可以不包含;
  • abstract修饰的方法不可以有具体的实现;
  • 不能实例化对象;
  • abstract修饰的方法,必须在子类中被重写;
  • 如果子类不是抽象类,则必须重写父类中未被重写的抽象方法;
  • 子类一次只能继承一个抽象类。

二、什么是接口

抽象类的更抽象就是接口。

1.案例代码

比如:一个“Person”接口

interface Person{
    String name;
    void test();
    default void test1(){
        System.out.println("test1");
    }
    public static void test2(){
        System.out.println("test2");
    }
}

2.注意事项

在接口中:

  • 使用interface定义;
  • 属性默认被public static final修饰,即是静态常量;
  • 方法默认是public abstrac 修饰,即是抽象方法;
  • 静态方法可以有具体实现;
  • default修饰的方法可以有具体实现(JDK1.8引入);
  • 不能被实例化;
  • 不能有代码块和构造方法;
    一个类可以多继承接口;
  • abstract修饰的方法,必须在子类中被重写;
  • 如果子类不是抽象类,则必须重写父类中未被重写的抽象方法;
  • 类和接口之间通过implements连接。

三、抽象类和接口的区别

1.相同点

1.都不能被new实例化;

2.都可以包含抽象方法;

3.都可以向上转型;

4.abstract修饰的抽象方法都必须在子类中被重写。

2.相异点

1.一个只能同时继承一个抽象类;

一个类可以多继承接口。

2.抽象类的属性无限制;

接口的属性默认是静态常量。

3.抽象类中的方法可以有抽象方法,也可以有其他修饰符修饰的方法;

接口中的方法只能有抽象方法、静态方法、default修饰的方法。

结语

学习是一个漫长的过程,会有鲜花,也会有荆棘,希望我们都能坚持下去!

相关文章
|
10月前
|
人工智能 自然语言处理 安全
WhatsApp 2026 AI 政策意味着什么?如何构建合规的聊天机器人?
Meta 将于 2026 年 1 月 15 日起禁止 WhatsApp Business Platform 上的“通用人工智能聊天机器人”(如开放域 ChatGPT 式对话),但明确允许用于订单查询、智能客服、预约管理等结构化业务场景的 AI。本文解析政策边界、风险判断标准,并提供可落地的合规建议,以及如何通过阿里云 Chat App 消息服务快速构建符合 Meta 要求的 WhatsApp AI 应用,避免账号受限,高效服务海外客户。
988 0
|
7月前
|
人工智能 JavaScript 数据挖掘
大模型应用开发4-MCP实战
MCP(模型上下文协议)是由Anthropic推出的开放标准,旨在解决AI互联领域中智能体与工具间的交互问题。该协议提供统一的数据访问方式,克服传统AI集成碎片化的局限性。MCP支持两种通信机制:stdio(本地进程通信)和SSE(远程服务调用)。其架构包含MCP Host(主应用)、MCP Client(请求转发)和MCP Server(工具执行)三部分。文章详细介绍了MCP的安装配置、工作原理,并通过一个本地舆情分析系统的开发案例,展示了如何实现客户端与服务端的交互。此外还介绍了CherryStudio
|
7月前
|
人工智能 API 网络安全
新手必看!阿里云部署OpenClaw超简单喂饭级图文步骤+Discord集成+避坑攻略
在2026年全球社群协作与AI自动化深度融合的趋势下,OpenClaw(原Clawdbot,曾用名Moltbot)凭借开源特性、灵活的插件生态与强大的任务执行能力,成为全球社群运营者、游戏玩家与技术爱好者的核心效率工具。这款开源AI智能体框架,截至2026年3月,在GitHub平台星标数量已突破21万,Fork数超4万,支持通过自然语言完成文件管理、信息检索、流程自动化、社群管理等多样化任务。而Discord作为全球月活超2.5亿的社群与游戏通讯平台,覆盖全球190+国家,具备频道分类、角色权限、机器人集成、多端同步等核心优势,是全球社群运营、游戏组队、技术交流的首选载体。
665 1
|
容灾 安全 关系型数据库
数据传输服务DTS:敏捷弹性构建企业数据容灾和集成
数据传输服务DTS提供全球覆盖、企业级跨境数据传输和智能化服务,助力企业敏捷构建数据容灾与集成。DTS支持35种数据源,实现全球化数据托管与安全传输,帮助企业快速出海并高效运营。瑶池数据库的全球容灾、多活及集成方案,结合DTS的Serverless和Insight功能,大幅提升数据传输效率与智能管理水平。特邀客户稿定分享了使用DTS加速全球业务布局的成功经验,展示DTS在数据分发、容灾多活等方面的优势。
709 0
|
前端开发 JavaScript 开发工具
前端开发基础:从零开启网页制作之旅
本文围绕前端开发基础展开,介绍了构建网页的三大核心技术:HTML(定义页面结构,具语义化特性)、CSS(控制视觉样式,含选择器、盒模型等核心概念)、JavaScript(实现动态交互,可操作 DOM),还提及 VS Code、浏览器开发者工具、Git 等必备工具,给出 “先基础后框架” 的学习路径与 MDN Web Docs 等资源,强调实践的重要性,帮助初学者掌握前端基础,为后续进阶奠基。
|
Java 数据库连接 API
Seata异常捕获问题之回滚事务如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
1209 125
|
机器学习/深度学习 人工智能 自然语言处理
《人工智能助力社会学研究:数据挖掘与分析方法的深度探索》
在数字化时代,人工智能(AI)正深刻改变社会学研究格局。AI强大的数据挖掘和分析能力,如机器学习算法、自然语言处理、社交网络分析及深度学习等,为社会学家提供了全新视角和工具,助力分类、预测、情感分析及复杂数据处理。同时,AI辅助的社会调查研究提升了问卷设计和样本生成的效率与质量。然而,应用AI时需关注数据质量和伦理问题,以确保研究的科学性和客观性。总之,AI为社会学研究带来了创新方法和广阔前景。
702 11
|
监控 安全 Linux
Python怎么修改进程名称
Python怎么修改进程名称
1045 0
|
机器学习/深度学习 存储 PyTorch
基于阿里云免费算力自建LLM(类GPT)大模型
基于阿里云免费算力自建LLM(类GPT)大模型