day14 java接口

接口

接口:对不同类型不同事物相同功能的描述(一定程序上解决了单继承的局限性)接口可以理解成一种标准 规范当类实现这个接口就实现了这个标准或规范接口的格式:权限修饰符 interface 接口名{}权限修饰符只能是public和缺省的。说明:1.类和接口是并列的结构。2.接口中有JDK1.8之前 :常量,抽象方法JDK1.8之后: 常量,抽象方法,静态方法,默认方法3.接口不能实例化,接口中没有构造器。4.接口和类的关系 :实现关系而且多实现类名 implements 接口名1,接口名2,.......5.当类实现接口后要实现接口中所有的抽象方法。如果不想实现该类可以声明为抽象类6.接口和实现类的多态性 :接口的类型指向实现类的对象7.接口和接口的关系 :继承关系并且是多继承类和类的关系:单继承类和接口的关系 :多实现接口和接口的关系 :多继承

接口和实现类的多态

接口和实现类也可以实现多态 : 接口的类型 指向 实现类的对象
interface MyInterface{}class Person implements MyInterface{}public class InterfaceTest {public static void main(String[] args) {MyInterface mi = new Person();if (mi instanceof Person){System.out.println("我是person");}}  
}

可以用 对象 instanceof 类或者接口 判断能否向下转型

右边为对象所属类的 父类 或者 所接接口 或者 所接接口的父接口 为ture

interface A{}
interface B extends A {}interface C extends B{}class SubClass implements C{}
public class InterfaceTest {public static void main(String[] args) {SubClass sb = new SubClass();System.out.println(sb instanceof C);System.out.println(sb instanceof B);System.out.println(sb instanceof A);}
}

结果为:ture

              ture

              ture

接口新特性

JDK1.8开始 接口中增加了静态方法和默认方法说明:1.接口中的静态方法的调用 : 接口名.静态方法名2.接口中的默认方法的调用 :  实现类的对象.默认方法名3.类优先原则 :当父类和接口中的默认方法出现了同名同参的那么默认调用父类中的该方法。4.接口冲突 : 当实现的多个接口中出了同名同参的默认方法时那么实现类必须重写此方法。5.在实现类的重写方法中调用接口中被重写的方法 : 接口名.super.默认方法名JDK1.9开始 :接口中增加私有方法(方法被private修饰)--知道即可注意:在类中重写接口中的默认方法不要加default
interface A{static void run(){System.out.println("A arun");}default void test(){System.out.println("A test");}
}interface B{static void run(){System.out.println("B arun");}default void test(){System.out.println("B test");}
}class SubClass implements A,B{/*当实现的多个接口中出了同名同参的默认方法时那么实现类必须重写此方法。*/@Overridepublic void test() { //重写接口中的默认方法时不要加default//调用接口中被重写的方法 : 接口名.super.默认方法名A.super.test();B.super.test();System.out.println("subClass test");}
}

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

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

相关文章

ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

一、关于导航怎么设置路由 1、在el-menu这个标签的属性中添加 router ,官方文档的解释是:启用vue-router 这种模式 2、在el-menu-item标签中的index属性直接书写路由,就可以实现正常vue-router了 3、在el-menu-item标签中书写路由属性::route…

【C++进阶】哈希的应用之位图和布隆过滤器

位图和布隆过滤器 一,位图1. 实现2. 位图的应用 二,布隆过滤器1. 使用场景2. 模拟实现 三,海量数据面试题哈希切分 四,总结 这一节我们来看哈希的应用 一,位图 先来看一个面试题 这里如果用unordered_set来解决&…

C++学习笔记三--基本控制语句

目录 前言 一、C语句 二、顺序结构 1.声明语句 2.表达式语句 3.基本输入/输出语句 4.复合语句和空语句 三、选择结构 1.if语句 2.switch语句 四、循环结构 1.for语句 2.while语句 3.do...while语句 4.循环的嵌套 五、跳转语句 前言 这篇文章介绍一…

C++11可变模板参数:海纳百川的Args

目录 一、可变模板参数的概念及功能 1.1Args的概念与使用 1.2获取args中的参数 二、emplace可变模板参数的实际应用 三、逗号表达式展开参数包 一、可变模板参数的概念及功能 1.1Args的概念与使用 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板…

二维码门楼牌管理应用平台建设:物业缴费的数字化革新

文章目录 前言一、物业缴费的数字化革新二、在线缴费功能的实现三、智能化缴费管理的优势四、面临的挑战与未来展望五、结语 前言 随着科技的不断进步,二维码门楼牌管理应用平台已成为物业管理的新趋势。在这样一个平台上,物业缴费的数字化革新不仅提高…

【计算机网络】TCP协议可靠传输保证(序列号/确认应答机制、超时重传、最长消息长度、滑动窗口控制、拥塞控制)

TCP协议可靠传输 1.序列号确认应答机制2.超时重传3.最长消息长度4.滑动窗口控制5.拥塞控制 1.序列号确认应答机制 这个机制类似于问答的形式。比如在课堂上老师会问你“明白了吗?”,假如你没有隔一段时间没有回应或者你说不明白,那么老师就会…

橘子学JDK之JMH-03(@State)

这里我们来搞官方的第三个案例,引入新的注解State。 一、案例三代码 package com.levi;/*** Description:* Author: Levi* Date: 2024/4/8 18:44*/import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.runner.Runner; import org.openjdk.jmh.runner.R…

【YOLOV8】项目目录重点部分介绍和性能评估指标

目录 一 项目目录重点部分介绍 二 性能评估指标 一 项目目录重点部分介绍 1 ultralytics

揭秘Dropbear SSH:轻量级的安全外壳协议实现

在远程管理和通讯的世界里,安全是至关重要的一环。SSH(Secure Shell)协议是互联网上用于安全远程登录和其他网络服务的标准方式。当我们提到SSH时,OpenSSH可能是最广为人知的实现。然而,在资源受限的环境中&#xff0c…

windows环境变量滥用维权/提权

0x01 前提 通过滥用系统的路径搜索机制来欺骗高权限用户执行看似合法的系统二进制文件,实际上是恶意的代码或程序,从而导致升权限并执行恶意操作。 攻击的关键前提: 路径搜索顺序: 当用户在命令行或程序中执行一个命令时&#x…

kafka 高吞吐设计分析

说明 本文基于 kafka 2.7 编写。author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 概括 支撑 kafka 高吞吐的设计主要有以下几个方面: 网络 nio 主从 reactor 设计模式 顺序写。 零拷贝。 producer producer 开启压缩后是批量压缩,bro…

【Qt】:常用控件(七:输入类控件)

常用控件 一.Combo Box(下拉框)二.Spin Box(微调框)三.ate Edit&Time Edit(日期微调框)四.Dial(旋钮)五.Slider(滑动条) 一.Combo Box(下拉框…

738.单调递增的数字

// 定义一个名为Solution的类 class Solution { public:// 定义公共成员函数:计算并返回大于等于输入整数N且其各位数字非降序排列的最小整数int monotoneIncreasingDigits(int N) {// 将整数N转换成字符串形式,方便操作每一位数字string strNum to_str…

23linux 自定义shell文件系统

打印环境变量,把当前子进程所有环境变量打印出来 环境变量也是一张表(指针数组以null结尾,最后条件不满足就退出了 ) 用子进程调用 结论1 当我们进行程序替换的时候 ,子进程对应的环境变量(子进程的环境变…

聚焦ChatGPT:学术写作全攻略

ChatGPT无限次数:点击直达 聚焦ChatGPT:学术写作全攻略 引言 在当今信息爆炸的时代,学术写作对于研究人员和学生来说是至关重要的技能。而随着人工智能的不断发展,ChatGPT作为一个强大的自然语言处理工具,为学术写作带来了全新的…

Mybatis执行器(Executor)

Executor简介 Executor Executor是MyBatis的核心接口之一,其中定义了数据库操作的基本方法。在实际应用中经常涉及的SqlSession接口的功能,都是基于Executor接口实现的。 BaseExecutor BaseExecutor是一个实现了Executor接口的抽象类,它实现了Execut…

pytorch 与 python版本对应关系

pytorch 与 python版本对应关系 torchtorchvisionPythonmain / nightlymain / nightly>3.8, <3.112.20.17>3.8, <3.112.10.16>3.8, <3.112.00.15>3.8, <3.111.130.14>3.7.2, <3.101.120.13>3.7, <3.101.110.12>3.7, <3.101.100.11&…

word文档拆分

Word如何拆分文档&#xff1f;-Word将文档拆分的方法 - 极光下载站 (xz7.com) 可以参考这篇&#xff0c;注意需要全部选中后再创建。 最需要注意的是&#xff0c;拆分后原文档不存在了&#xff0c;最多可以显示引用的拆分的文档&#xff0c;如果拆分有误&#xff0c;则无法恢复…

Yolov8-pose关键点检测:特征融合 | CAMixing:卷积-注意融合模块和多尺度提取能力 | 2024年4月最新成果

💡💡💡本文独家改进:CAMixingBlock更好的提取全局上下文信息和局部特征,包括两个部分:卷积-注意融合模块和多尺度前馈网络; 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect前面,增强detect提取能力; 提供多种改进方…