【Java】接口及其实现(实验四)

news2024/10/7 18:25:16

目录

一、实验目的

二、实验内容

三、实验小结


一、实验目的

  1. 了解接口的作用
  2. 掌握接口的定义与实现
  3. 掌握接口的回调

二、实验内容

1. 定义一个接口Human,其中有一无参的、返回类型为void的方法speak();定义类Student实现接口,输出学生姓名、学号、学校、专业、兴趣等信息;定义类Worker实现接口,输出工人姓名、工作单位、职务和兴趣信息;主类中定义接口变量,赋值,运用接口回调类中的方法来输出数据。

源代码:

 实验运行截图:

2.评价成绩 

体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。编写能够满足如下条件的程序:

(1)定义一个接口Compute,包含计算平均值的抽象方法。

(2)定义一个类Gymnastics实现上述接口的用于计算体操比赛选手成绩的类。

(3)定义一个类School实现上述接口的用于计算班级平均成绩的类。

(4)在主类中通过接口回调分别计算并输出体操选手最后得分和班级考试平均分数。要求打分通过键盘输入,结果输出占6列,前者右对齐,保留三位小数,后者左对齐,保留两位小数。

 源代码:

 实验运行截图:

3. 小狗在不同环境条件下可能呈现不同的状态表现,如 "听主人的命令"、"嬉戏"、"晃动尾巴,表示欢迎"、"狂叫,并冲上去狠咬敌人"等,要求用接口封装小狗的状态。具体要求如下。

(1)编写一个接口DogState,其中有一个showState()方法,用来呈现小狗的状态。

(2)编写若干个实现DogState接口的类,负责刻画小狗不同的状态。

(3)编写一个Dog类,类中封装接口变量dogState,定义变量的seter方法,类中定义show()方法用接口回调showState()显示对象的状态。

(4)编写主类,测试小狗的不同状态。要求用匿名类对象显示小狗的"嬉戏"状态。

源代码:

实验运行截图:

三、实验小结

1、接口跟抽象类有很多类似的功能机制。虽然java不支持类多继承、但通过接口子类可以实现多继承的功能。

2、接口由常量(public final 类型 变量=value,定义时必须初始化、中间不允许修改)和方法(abstract方法、default方法、static方法、private方法)构成;不管是在抽象类还是在类实现接口中,abstract 方法必须被重写。其中static类方法、private私有方法不能被实现接口的类对象直接访问。

3、接口中的常量可以通过“接口名、实现接口的类名、类的对象”直接访问而static类方法只能通过接口名调用;private私有方法通常与default默认实例方法配合使用即在默认实例方法体中间接调用private私有方法。

4、接口实现的方式有两种,分别是:

4.1类实现接口

                          Class 类名 extends 父类 implements  接口,.....

4.2lambda 表达式实现接口

                          接口类型 变量=(形参)->{函数体};

5、将接口实现的类所创建的对象的引用(地址)赋值给接口类型变量,然后通过接口变量间接调用类中重写接口的抽象方法即为接口回调。

6、接口的多态实现机制就是多个类实现同一个接口并各自重写接口中的抽象方法,然后通过接口类型变量回调这些类中重写接口的方法机制就是接口的多态、跟抽象类的多态实现机制相似。

7、我们们可以单独定义个类、类中包含有接口类型变量和方法,来专门实现接口的回调。这样既体现了面向接口的编程思想同时也遵守了程序设计“扩展开放、修改关闭”的原则。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1466274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型分布式训练方法FDSP和DeepSpeed

备注: 本文部分内容参考自其他作者的内容,如有不妥,请联系,立即删除。 pytorch单精度、半精度、混合精度、单卡、多卡(DP / DDP)、FSDP、DeepSpeed模型训练 相关代码:pytorch-model-train-temp…

高录用快见刊【最快会后两个月左右见刊】第三届社会科学与人文艺术国际学术会议 (SSHA 2024)

第三届社会科学与人文艺术国际学术会议 (SSHA 2024) 2024 3rd International Conference on Social Sciences and Humanities and Arts *文章投稿均可免费参会 *高录用快见刊【最快会后两个月左右见刊】 重要信息 会议官网:icssha.com 大会时间:202…

【Wio Terminal】使用WiFi(1)- 更新无线核心固件

使用WiFi(1)- 更新无线核心固件 一、概述1、更新无线核心固件步骤 1 - 擦除初始出厂固件步骤 2 - 刷入最新的固件 2、从Arduino IDE检查RTL8720固件版本安装rpcWiFi库验证 3、更新 SAMD ArduinoCore 一、概述 这篇wiki介绍了如何为Wio Terminal上的Real…

【Vuforia+Unity】AR01实现单张多张图片识别(Image Targets)召唤数字内容

1.官网注册 Home | Engine Developer Portal 2.下载插件SDK,导入Unity 3.官网创建数据库上传图片,官网处理成数据 下载好导入Unity! 下载好导入Unity! 下载好导入Unity! 下载好导入Unity! 4.在Unity设…

智慧农业四情监测预警系统

TH-Q3智慧农业四情监测预警系统是指通过对农田环境、作物生长、病虫害发生以及气象变化等四种情况的实时监测和数据分析,实现对农业生产过程的预警和决策支持的系统。该系统集成了物联网、大数据、云计算等现代信息技术,为农业生产提供了全面、准确、实时…

git 解除本地分支与其它分支(远程分支)的关联

开发中,我在同事的分支开一条分支,并将同事的分支作为关联分支,前两天还好,我一个人在干活,然而第3天,同事回来了,他在他那条分支也开发,这时就会出现2种情况, 1. 同时修…

数据中心机房建设的真正挑战

在数字化时代,数据中心机房不仅是信息处理和存储的心脏,也是企业运营的核心枢纽。然而,在机房建设过程中,存在一系列概念上的误解和痛点。这些误区不仅影响了机房建设的质量和效率,也给企业的长期发展带来了潜在的风险…

揭秘!KubeSphere 背后的“超级大脑”:etcd 的魅力与力量

作者:尹珉,KubeSphere Ambassador & Contributor,KubeSphere 社区用户委员会杭州站站长。 1. 开篇:揭开神秘面纱,etcd 如何驱动 KubeSphere 高效运转 在云原生时代,etcd 作为 Kubernetes 生态中不可或…

sambamba — samtools 的高效平替工具

sambamba — samtools 的高效平替工具 sambamba 是一个 BAM 文件处理工具。 sambamba 它使用了 D 语言的多线程和异步 IO 特性,实现了高效的并行化处理。sambamba 可以在多核 CPU 上同时运行多个任务,利用硬盘和内存的带宽,提高了处理速度。…

java 面向对象-上

1.构造器(或构造方法): Constructor 构造器的作用: 1.创建对象 2.初始化对象的信息 2.使用说明: * 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器 * 2.定义构造器的格式&#xff1a…

最简单方式把jar打包成Windows服务

废话 😢 将JAR文件转化为Windows服务是一种高效且常见的Java应用部署策略。这种转变赋予了Java应用程序在Windows操作系统上以无界面后台服务模式运行的能力,从而实现了持续、稳定且可靠的功能提供。这种部署方式不仅提升了应用的可用性&#xff0c…

Pyvisa 测试不同占空比下的电流线性度

情况说明,现在有一个电流采样放大器,输入信号是一个占空比信号,我要去看电流采样放大器的线性度怎么样,所以就做了个这么一个小东西。 接线框图如下图所示: 图1:接线框图 表1:使用的仪器仪表 …

【前端素材】推荐优质后台管理系统Modernize平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理和控制网站、应用程序或系统后台操作的软件工具,通常由授权用户(如管理员、编辑人员等)使用。它提供了一种用户友好的方式来管理网站或应用程序的内容、用户、数据等方面的操作,并且通常…

节假日效应prophet预测模型和节假日识别错误

节假日效应是指在特定的节假日或纪念日期间,人们的行为和活动发生变化,从而影响到相应的时间序列数据(股票或者其他)。这种效应可能在多个领域产生影响,包括销售、交通、能源消耗等。 完整代码和数据可关注gzh’financ…

文件上传---->生僻字解析漏洞

现在的现实生活中,存在文件上传的点,基本上都是白名单判断(很少黑名单了) 对于白名单,我们有截断,图片马,二次渲染,服务器解析漏洞这些,于是今天我就来补充一种在upload…

AI智能制作ER图技术革新:itBuilder引领数据库设计新篇章

随着AI技术在各领域的深度渗透,itBuilder已成功引入了一项划时代的功能——运用AI能力直接创作实体关系(ER)图。这一创新应用标志着AI制作ER图的时代已经到来,用户现在可以通过与AI的互动交流,将自身的数据管理需求精准…

大公司跨域文件交换,如何兼顾安全效率和经济性?

现如今,随着我国经济的不断发展向前,许许多多的企业其规模也在不断的壮大,大型企业在全国、甚至全球范围的重要地区都设有自己的分支机构,总部与分支机构间,各分支机构间均存在数据交换需求,同时&#xff0…

day09-MongoDB

文章目录 day09-MongoDB一、回顾1.1. 行为实战核心要点说明 二、评论系统2.1 MongoDB2.1.1 MongoDB简介①简介②体系结构与术语 2.1.2 安装与连接2.1.3 Springboot整合MongoDB①引入依赖②添加服务端配置③准备实体类④测试-新增⑤测试-查询⑥测试-更新测试-删除 2.2 app端评论…

选择排序的简单介绍

选择排序是一种简单直观的排序算法,其原理如下: 1. 遍历数组,找到最小(或最大)的元素,并将其与数组的第一个元素交换位置。 2. 接着在剩下的元素中找到最小(或最大)的元素&#xff…

Mysql深入学习 基础篇 Ss.01 相关概念及初识SQL语法

事情永远不会变得容易,但我会变得更好 ——24.2.20 一、数据库相关概念 1.数据库 存储数据的仓库,数据是有组织的进行存储 DB 2.数据库管理系统 操纵和管理数据库的大型软件 DBMS 3.SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据…