JAVA每日作业day6.25

ok了家人们今天我们学习了,接口这个知识,我们闲话少叙,一起看看吧。

一,接口

1.1 接口概述

接口是功能的集合。接口的内部主要就是定义方法,包含常量,抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK9)。

接口不能创建对象;接口是用来被类实现(implements)的,实现接口的类称为实现类。

好处:

功能的定义与实现分离,优化了程序设计。

程序的扩展性

1.2 接口的定义

定义接口的关键字使用interface

接口中可以定义变量,变量有固定的修饰符修饰:public static final。

接口中的变量也称之为常量,其值不能改变。

接口中可以定义方法,方法有固定的修饰符,public abstract

public interface 接口名 {      public static final 数据类型 变量名 = 值      public abstract 返回值类型  方法名字(参数列表);
}
public interface MyInterface {//固定修饰符public static final 常量public static final int N=10;int M=20;//固定修饰符  public abstract 抽象方法public abstract void method01();public void method02();
}

1.3 类实现接口

类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。实现类需要重写接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。

public interface MyInterface {//固定修饰符 public static final 常量public static final int N=10;int M=20;//固定修饰符  public abstract 抽象方法public abstract void method01();public void method02();}
public class DemoTest {public static void main(String[] args) {//常量被静态修饰,接口的名字直接调用System.out.println(MyInterface.N);MyInterfaceImpl my=new MyInterfaceImpl();System.out.println(my.M); my.method01();       my.method02();    }
}

 1.4 接口的多实现

public interface MyInter01 {public void show01();}
public interface MyInter02 {public void show02();}
public class MyInterImpl implements MyInter01, MyInter02 {@Overridepublic void show01() {System.out.println("show01..."); }    @Overridepublic void show02() {System.out.println("show02...");}
}
public class DemoTest {public static void main(String[] args) {MyInterImpl my=new MyInterImpl();my.show01(); my.show02();}
}

1.5 继承类同时实现接口

public interface MyInter01 {public void show01();}
public interface MyInter02 {public void show02();}
public class DemoTest {public static void main(String[] args) {MyInterImpl my=new MyInterImpl();my.show01();my.show02();my.show03();    }
}

1.6 接口新增方法

public interface 接口名称 {常量(JDK7及其以前)抽象方法(JDK7及其以前)默认方法(JDK8额外增加)静态方法(JDK8额外增加)私有方法(JDK9额外增加)}

 

public interface MyInter {/*        默认方法:默认的修饰符是 public default,public可以省略,
default不可以省略        可以继承,也可以重写,重写需要去掉default关键字     */public default void method01(){System.out.println("method01...");}/*        静态方法:静态方法只能通过接口名调用,不能通过实现类名字和对象调用     */public static void method02(){System.out.println("method02...");}/*        私有方法:只能在接口中直接调用     *///    private void method03(){
//        System.out.println("mthod03....")
//    }
}
public class MyInterImpl implements MyInter{//    @Override
//    public void method01() {
//
//        System.out.println("impl...method01...");
//
//    }
}
public class DemoTest {public static void main(String[] args) {MyInterImpl my=new MyInterImpl();my.method01();MyInter.method02();}
}

1.7 接口和抽象的区别

相同点

        位于继承的顶端,用于被其他类实现或继承;

        都不能直接创建对象;

        都包含抽象方法,其子类都必须覆写这些抽象方法;

不同点

        抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;

        一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

        抽象类是 继承体系中应该具备的功能, 继承体系是一种 is..a关系

        接口是这个事物中的扩展功能,继承体系是一种 like..a关系

ok了家人们,明天见。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac安装多版本node

Mac下使用n模块去安装多个指定版本的Node.js,并使用命令随时切换。 node中的n模块是,node专门用来管理node版本的模块,可以进行node版本的切换,下载,安装。 1.安装n npm install -g n 2.查看版本 n --version 3.展…

SSH的基本使用

文章目录 1. SSH使用介绍2. 如何配置OpenSSH Client和OpenSSH Server2.1 Windows系统配置2.2 Linux系统配置2.2.1. 安装OpenSSH服务2.2.2. 启动和检查SSH服务 3. SSH具体使用方式4. vscode中使用ssh远程连接 1. SSH使用介绍 SSH 最常见的用途是通过加密连接在不安全的网络中进…

①分析胃癌组蛋白脱乙酰酶HDS模型-配对转录组差异

目录 HDS评分构建 ①数据加载 ②评分计算 做样本及评分展示图 ①数据处理 ②进行作图 分析配对的单细胞及转录组胃癌数据的 HDS评分,数据源于gastric-cancer - GitCode①胃癌单细胞和配对转录组揭示胃肿瘤微环境(文献和数据)_代码笔记:处理迄今为止最大的单细胞胃癌数…

vue3中h函数的使用

h函数是用于创建一个 vnodes ,它既可以用于创建原生元素,也可以创建组件,其渲染后的效果等同于使用模版语言来进行创建。 h函数的传参如下: // 完整参数签名 function h(type: string | Component,props?: object | null,child…

Python笔记 文件的写,追加,备份操作

一、文件的写操作 案例演示: # 1.打开文件 f open(python.txt,w)# 2.文件写入 f.write(hello world)# 3.内容刷新 f.flush() 注意: 直接调用write,内容并为真正的写入文件,二十会积攒在程序的内存中,称之为缓冲区…

百度智能云千帆推出大模型普惠计划,0成本切换

百度智能云千帆推出大模型普惠计划,0成本切换至国内调用量第一的大模型平台。场景更丰富、模型更全面、工具链更完整易用、更安全可靠! 即日起为新注册企业用户提供: 0元调用: 文心旗舰模型首次免费,赠送ERNIE3.5旗舰模…

PDF编辑软件pdf转word工具Acrobat DC百度云盘分享

如大家所了解的,Adobe Acrobat DC是一款高级PDF文档编辑和管理软件,它整合了创建、编辑、共享和签署PDF文件的强大功能。这款软件为用户提供了一系列高效的工具,使得处理PDF文件变得异常简单,大幅提升办公效率。 Acrobat DC软件核…

【Linux】性能分析器 perf 详解(一)

1、简介 perf 是由 Linux 官方提供的系统性能分析工具 。它包含两部分: perf_events ,Linux 内核中的一个子系统perf 命令,用户空间的应用程序内核子系统 perf_events 提供了性能计数器(hardware performance counters)和性能事件的支持,它以事件驱动型的方式工作,通过…

HTTP性能测试工具 —— wrk!

wrk性能测试工具详解 wrk是一款轻量级但功能强大的HTTP基准测试工具,主要用于在单机多核CPU环境下对HTTP服务进行性能测试。它通过利用系统自带的高性能I/O机制(如epoll、kqueue等),结合多线程和事件模式,能够产生大量…

JavaWeb——MySQL:DDL

目录 3.DQL:查询 3.5 分页查询 ​编辑 总结: 3. DQL:查询 查询是使用最多、最频繁的操作,因为前面的修改以及删除,一般会交给数据库专业的人员,对于非数据库专业人员来说,老板一般会放心的…

[DALL·E 2] Hierarchical Text-Conditional Image Generation with CLIP Latents

1、目的 CLIP DDPM进行text-to-image生成 2、数据 (x, y),x为图像,y为相应的captions;设定和为CLIP的image和text embeddings 3、方法 1)CLIP 学习图像和文本的embedding;在训练prior和decoder时固定该部分参数 2&a…

使用npm报npm ERR code EPERMnpm ERR syscall rename错误

使用npm install初始化时报错, 解决结果是:node版本不对,切换node版本

基于 Redis 实现秒杀资格判断,提升并发性能

在互联网电商平台上,秒杀活动往往会吸引大量用户同时抢购,如何高效地处理高并发请求,保证用户体验,是一个重要的技术挑战。本文将介绍如何基于 Redis 实现秒杀资格的判断,提高并发性能。 基本思路 秒杀活动的核心流程…

规则引擎-Aviator 表达式校验是否成立

目录 介绍特性使用更多文献支持 介绍 Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。 特性 支持绝大多数运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(~)、三元表达式(?:…

申请专利前需要了解的步骤

申请专利前需要了解的步骤 在创新日益成为推动社会进步的重要动力的今天,专利的申请与保护显得尤为重要。然而,对于许多初次接触专利申请的人来说,这个过程可能会显得复杂而繁琐。 一、明确创新内容并评估其可专利性 在申请专利前&#xff…

vue3前后端开发:响应式对象不能直接成为前后端数据传输的对象

如图所示:前端控制台打印显示数据是没问题的,后端却显示没有接收到相应数据,但是后端的确接收到了一组空数据 直接说原因:这种情况唯一的原因是没有按正确格式传递参数。每个人写错的格式各有不同,我只是说明一下我在…

Python+Pytest+Allure+Yaml接口自动化测试框架详解

PythonPytestAllureYaml接口自动化测试框架详解 编撰人:CesareCheung 更新时间:2024.06.20 一、技术栈 PythonPytestAllureYaml 版本要求:Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0 二、环境配置 1、安装python3.7,并配置…

[Redis]事务

Redis事务 Redis 事务提供了一种将多个命令请求打包的功能。然后,再按顺序执行打包的所有命令,并且不会被中途打断。 但是,事务中的每条命令都会与 Redis 服务器进行网络交互,比较浪费资源 所以,日常开发中不建议使…

小区业主管理系统

摘 要 随着城市化进程的加速和人口的不断增加,小区的数量也在不断增加。小区作为城市居民居住的主要场所,其管理工作也变得越来越重要。传统的小区业主管理方式存在诸多问题,如信息传递不畅、业务处理效率低下等。因此,开发一个高…

搜维尔科技:「研讨会」惯性动捕技术在工效学领域应用研讨会

Movella将于7月2日(周二)下午2点举行主题为惯性动捕技术在工效学领域应用的研讨会。来自Movella的伙伴赋能经理Jeffrey Muller作为嘉宾出席,届时主讲人将为大家带来Xsens惯性动捕技术在工效学领域的应用分享。同时,研讨会还邀请多…