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

JAVA接口代码示例

public class VehicleExample {// 定义接口public interface Vehicle {void start(); // 启动车辆void stop(); // 停止车辆void status();// 检查车辆状态}public interface InnerVehicleExample {void student();}// 实现接口的类:Carpublic static class Car implements Vehicle {@Overridepublic void start() {System.out.println("Car is starting.");}@Overridepublic void stop() {System.out.println("Car is stopping.");}@Overridepublic void status() {System.out.println("Car is run");}}// 实现接口的类:Bikepublic static class Bike implements Vehicle {@Overridepublic void start() {System.out.println("Bike is starting.");}@Overridepublic void stop() {System.out.println("Bike is stopping.");}@Overridepublic void status() {System.out.println("Bike is running.");}}// 主方法public static void main(String[] args) {Vehicle myCar = new Car();Vehicle myBike = new Bike();myCar.start(); // 输出: Car is starting.myCar.stop(); // 输出: Car is stopping.myCar.status();myBike.start(); // 输出: Bike is starting.myBike.stop(); // 输出: Bike is stopping.myBike.status();}
}
什么是接口?

在Java中,接口是一种特殊的引用数据类型,它仅包含常量和抽象方法。接口定义了一组方法的签名,这些方法将由实现接口的类来实现。相比于类的继承,接口更多地关注行为,允许不同的类实现相同的功能。

接口的优点
  1. 抽象化:接口让我们可以定义一个规范,任何实现该接口的类都必须遵循这个规范。这就鼓励了代码的高度抽象化,使得系统的设计更加灵活。
  2. 解耦应用程序:使用接口可以减少类之间的依赖性,即使接口的实现发生变化,只要保证新的实现符合接口定义的行为,其他依赖于该接口的代码无需修改。
  3. 多重继承:Java不支持类的多重继承,但一个类可以实现多个接口,从而克服了这一限制,这使得我们可以组合不同的类行为。
  4. 提高可测试性:接口使得单元测试变得更加简单。我们可以创建一个接口的模拟实现,并测试依赖于该接口的代码,而无需实际依赖于它的实现。
代码解析

在上述代码示例中,我们定义了一个 Vehicle 接口,包含了 start()stop()status() 三个方法。这些方法代表了车辆的基本行为。

  1. 接口的实现:我们创建了两个类 CarBike,分别实现了 Vehicle 接口。在每个类中,实现了接口方法,定义了具体的行为,比如如何启动和停止车辆,以及获取车辆状态。
  2. 主方法的调用:在 main 方法中,我们创建了 CarBike 的实例,并通过接口类型的变量 myCarmyBike 调用它们的行为。这种方式显示了接口的多态性。

相关文章:

JAVA接口代码示例

public class VehicleExample {// 定义接口public interface Vehicle {void start(); // 启动车辆void stop(); // 停止车辆void status();// 检查车辆状态}public interface InnerVehicleExample {void student();}// 实现接口的类:Carpublic static class Car imp…...

【Android】Proxyman 抓 HTTP 数据包

前言 抓包(Packet Capture)是指在网络通信中截取、分析数据包的过程。 抓包通常用于网络调试、性能优化、安全分析等工作,可以帮助开发者或运维人员查看网络请求的详细内容,包括请求的URL、请求头、响应状态、数据内容等信息。 …...

基于Java Springboot活力健身馆管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…...

Excel SUMIFS

SUMIFS 是 Excel 中一个非常强大的函数,用于根据多个条件对数值区域进行求和。它是 SUMIF 函数的升级版,能够处理多个条件,使得数据分析变得更加精确和方便。 SUMIFS 函数的语法 excel 复制代码 SUMIFS(sum_range, criteria_range1, criteri…...

复制Qt项目后常见问题解决

前言 很多时候因为我们不想在原有的重要代码上作修改,常常将代码复制一份。今天讨论的就是代码复制后,复制的代码运行不正常或出错的问题。 第一个问题:图片等资源文件运行时加载失败 当我将程序运行起来后,我发现有些图片没有显…...

C#-WPF 常见类型转换方法(持续更新)

目录 一、普通类型转换 1、Convert类 2、Parse(转String) 3、TryParse(转String) 4、ToString(转String) 5、int转double 6、自定义类型的显示/隐式转换 二、byte[]转ImageSource 方法一 方法二 一、普通类型转换 1、Convert类 提供了一种安全的方式来执行类型转换&…...

Path does not exist: file:/D:/pythonProject/spark/main/datas/input/u.data

出现标题中的错误原因可能是: 1.文件路径书写错误; 2.文件本身不存在。 从图中可以看出,数据源文件是存在的,但是读取不到文件,说明代码中的文件路径写错了,从报错的结果可以看出,python在D:/…...

物联网——UNIX时间戳、BKP备份寄存器、RTC时钟

RTC时钟 Unix时间戳 UTC/GMT 时间戳转换 时间戳转换 BKP简介 RTC框图 RTC基本结构 硬件供电电路 RTC操作注意事项 接线图(读写备份寄存器和实时时钟)...

力扣 LeetCode 94. 二叉树的中序遍历(Day6:二叉树)

解题思路&#xff1a; 方法一&#xff1a;递归&#xff08;左中右&#xff09; class Solution {List<Integer> res new ArrayList<>();public List<Integer> inorderTraversal(TreeNode root) {recur(root);return res;}public void recur(TreeNode root…...

删除缓存之后,浏览器显示登录新设备

小小记录一下问题&#xff0c;清c盘正好就遇到了【答案AI生成】 清除c盘缓存&#xff0c;浏览器所有页面都需要重新登录&#xff0c;并在登录之后显示登录了新设备是为什么&#xff0c;是因为鉴权更新了就算新设备吗&#xff1f; 回答 清除C盘缓存后&#xff0c;浏览器所有页…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04目录1. Alopex: A Computational Framework for Enabling On-Device Function Calls with LLMs摘要&#xff1a;研究背景&…...

Stable diffusion详细讲解

&#x1f33a;系列文章推荐&#x1f33a; 扩散模型系列文章正在持续的更新&#xff0c;更新节奏如下&#xff0c;先更新SD模型讲解&#xff0c;再更新相关的微调方法文章&#xff0c;敬请期待&#xff01;&#xff01;&#xff01;&#xff08;本文及其之前的文章均已更新&…...

软件工程期末复习-用例建模

1、为什么需要用例建模 2、用例建模的表示 3、一个例子&#xff0c;ATM用例图 4、什么是用例&#xff1f; 5、用例包含的软件需求 6、参与者的定义 7、交互<->关联 8、用例建模的步骤 9、确定参与者 10、参与者检查项 11、MINILibrary...

【Golang】——Gin 框架中的表单处理与数据绑定

在 Web 应用开发中&#xff0c;表单是用户与服务器交互的重要手段。Gin 框架对表单处理提供了高效便捷的支持&#xff0c;包括数据绑定、验证等功能。在本篇博客中&#xff0c;我们将详细介绍如何使用 Gin 框架处理表单数据&#xff0c;涵盖基础操作与进阶技巧&#xff0c;帮助…...

hive-内部表外部表-详细介绍

1、表类型介绍 内部表&#xff1a; 表面来看&#xff0c;我们建的所有的表&#xff0c;默认都是内部表&#xff0c;内部表又叫做管理表&#xff0c;它的位置也很固定/user/hive/warehouse下面。 外部表&#xff1a; 创建的时候需要加关键字external 修饰&#xff0c;而且&a…...

Windows系统 ElasticSearch,分词器、Kibana安装

目录 1.wins安装ElasticSearch1.下载es安装包2.下载分词器3.注意事项4.学会看报错日志 2.将 elasticsearch 以服务的方式安装安装ES解压到根盘符下&#xff0c;如C或E盘等&#xff0c;因为 E:\Program Files文件夹下的都是默认的只读权限&#xff0c;所以换到没有只读权限&…...

黑马智数Day10

项目背景说明 后台管理部分使用的技术栈是Vue2&#xff0c;前台可视化部分使用的技术栈是Vue3 前台可视化项目不是独立存在&#xff0c;而是和后台管理项目共享同一个登录页面 微前端的好处 微前端是一种前端架构模式&#xff0c;它将大型单体应用程序分解为小的、松散耦合的…...

网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机

目录 网卡IP网络地址主机地址子网子网掩码网关默认网关 MACARPARP抓包分析 路由器NATNAPT 交换机 网卡 网卡(Network Interface Card&#xff0c;简称NIC)&#xff0c;也称网络适配器。 OSI模型&#xff1a; 1、网卡工作在OSI模型的最后两层&#xff0c;物理层和数据链路层。物…...

MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结

文章目录 MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的&#xff1f;——阅读总结一、MySQL 主备基本原理&#xff08;一&#xff09;主备切换流程&#xff08;二&#xff09;主备数据同步流程 二、binlog 格式及相关问题&#xff08;一&#xff09;binlog 的三种格式&#…...

Visual Studio 圈复杂度评估

VisualStudio自带的有工具 之后就可以看到分析结果...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...