java学习笔记------接口

2023-10-31

接口:就是一种规则(是对行为的抽象)

接口的定义和使用:

  • 接口用关键字interface来定义         public interface  接口名{}
  • 接口不能实例化
  • 接口和类之间是实现关系,通过implements关键字表示    public  class  类名  implements  接口名{}
  • 接口的子类(实现类)要么重写接口中所有的抽象方法,要么是抽象类

注意:

  1. 接口和类的实现关系,可以单实现也可以多实现。    public  class  类名  implements 接口名1,接口名2{}
  2.  实现类还可以在继承一个类的同时实现多个接口。public  class  类名  extends  父类  implements 接口名1,接口名2{}

接口中成员的特点:

1.成员变量:只能是常量,默认修饰符:public static final 

2.没有构造方法

3.成员方法只能是抽象方法 默认修饰符:public abstract

接口和类之间的关系:

  • 类和类的关系:继承关系,只能单继承,不能多继承,但是可以多层继承
  • 类和接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
  • 接口和接口的关系:继承关系,可以单继承也可以多继承(如果实现类实现了最下面的子接口,那么就需要重写所有的抽象方法)

扩展

1.允许在接口中定义默认方法,需要使用关键字default修饰(作用:解决接口升级的问题)

        接口中默认方法的定义格式:       

  • 格式:public default 返回值类型  方法名(参数列表){   }
    • 范例:public default  void show (){}

        接口中默认方法的注意事项

  • 默认方法不是抽象方法,所以不强制被重写。但是如果被重写,重写的时候去掉default关键字
    • public可以省略,default不能省略 
    • 如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写

 2.允许接口中定义静态的方法,需要用static修饰

        接口中静态方法的定义格式:

  •         格式:public static 返回值类型 方法名(参数列表){   }
  • 范例:public static void show(){}

接口中静态方法的注意事项:

  • 静态方法只能通过接口名调用,不能通过实现类名或对象名调用
  • public  可以省略,static不能省略

3.接口中私有方法的定义格式:

  • 格式一:private  返回值类型  方法名(参数列表){        }
  • 范例一:private void show(){     }(为默认方法服务)
  • 格式二:private static 返回值类型  方法名(参数列表){}
  • 范例二:private static void method(){  }(为静态方法服务)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java学习笔记------接口 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo

随机推荐

  • Java(对象数组、方法的重载、参数传递、递归、packa、import、封装、构造器、实例变量赋值、javabean、类图)

    对象数组 方法的重载 两同一不同 同一个类 相同的方法名 参数列表不同 参数个数不同 或 参数类型不同 可变参数 2的特例 可变个形参的方法与同一个类中的方法名相同 且与可变个数形参的类型相同额数组不构成重载 sql语句中的可变参数 参数传
  • SpringCloud @FeignClient 注入Spring容器原理

    前言 本文分析 FeignClient注解如何别扫描并注入到spring容器中 重点分析 EnableFeignClients工作原理 由于通过源码分析涉及内容比较多建议根据文章中流程debug调试进行学习 文章涉及 容器刷新模板方法 Co
  • p1m2(二分)

    题目 2018百度之星 http acm hdu edu cn showproblem php pid 6383 二分 操作次数满足有序性 用二分 代码 include
  • typeid详解

    在揭开typeid神秘面纱之前 我们先来了解一下RTTI Run Time Type Identification 运行时类型识别 它使程序能够获取由基指针或引用所指向的对象的实际派生类型 即允许 用指向基类的指针或引用来操作对象 的程序能
  • 经纬恒润再次入选教育部产学研合作协同育人企业

    近日 教育部高等教育司组织的产学合作协同育人项目组公布了2023年度产学合作协同育人项目指南通过企业名单 经纬恒润再次入选 此次共获批37个项目 其中有25个师资培训项目 12个实践条件建设和实践基地建设项目 产学合作协同育人项目由教育部高
  • es--基础--02--安装与启动

    es 基础 02 安装与启动 1 简单安装与启动 1 1 下载安装包 cd usr local java elasticsearch wget https artifacts elastic co downloads elasticsear
  • 《剑指offer第二版》面试题14:剪绳子

    感谢大佬 参考的是他的笔记才懂了这题 他写的真的很好 感谢感谢 题目 给你一根长度为 n 的绳子 请把绳子剪成整数长度的 m 段 m n都是整数 n gt 1并且m gt 1 每段绳子的长度记为 k 0 k 1 k m 1 请问 k 0 k
  • 卡内基梅隆大学(CMU)的Eric Xing(邢波)教授为什么能读完一般学校的分子生物学PhD后到伯克利去CS PhD?

    Eric Xing当年为什么能在读了一个50名左右的学校Rutgers的分子生物学phd之后 去加州大学伯克利分校UCB读计算机科学博士 感觉像这种转行的一般都是第一个phd已经是名校名导才能转得好 我也看过Eric在Rutgers发的论文
  • gcc在Linux下如何运行一个C/C++程序

    安装gcc sudo apt get install gcc 之后输入密码即可 绝对路径的方式进入usr目录 cd home home 是普通用户的主目录 在创建用户时 每个用户要有一个默认登录和保存自己数据的位置 就是用户的主目录 所有普
  • 数据的平滑处理函数——log1p和exmp1

    参考 https blog csdn net qq 36523839 article details 82422865 https docs scipy org doc numpy 1 13 0 reference generated nu
  • 索引的原理分析:用B+树来做索引

    文章目录 前言 为什么索引要存放到硬盘上 如何评价索引的数据结构设计好坏 二叉树的局限性 什么是 B 树 什么是 B 树 前言 索引其实就是一种数据结构 那么 索引的数据结构究竟是怎样的 对索引底层的数据结构有了更深入的了解后 就会更了解索
  • SpringBoot+Vue 的家政服务管理平台(附源码,数据库)

    文章目录 1 背景 2 主要技术 3 可行性分析 4 系统设计 5系统的详细设计与实现 5 1前台模块设计 5 2后台功能模块 源码下载地址 1 背景 本系统主要是设计出家政服务管理平台 基于B S构架 后台数据库采用了Mysql 可以使数
  • 做爬虫会有前途吗?

    阅读文本大概需要 5 分钟 这几年随着人工智能领域的大火 Python 这门语言逐渐出现在主流视野中 Python 语法易懂 编写简洁 并且还拥有非常丰富的库 很多人工智能项目首选的语言就是用 Python 可以说是人工智能把 Python
  • 2021年氯化工艺实操考试视频及氯化工艺考试试题

    题库来源 安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通 氯化工艺实操考试视频是安全生产模拟考试一点通生成的 氯化工艺证模拟考试题库是根据氯化工艺最新版教材汇编出氯化工艺仿真模拟考试 2021年氯化工艺实操考试视频及氯化工艺考试
  • Solidity 从入门到实战(一)

    solidity 从入门到实战 一 注意 本专栏主要来自于https www bilibili com video BV1St411a7Pk p 11 spm id from pageDriver的学习笔记 编写第一个案例 声明版本号 pr
  • 计算机下方如何添加启动项,开机设置启动项,如何添加开机启动项

    开机启动项指的是当计算机在开机的时候会随着系统同时启动的程序组件或者软件 开机启动项虽然是不可避免的 但是开机启动项越多就会导致开机的时候需要启动的程序过多 这样会延长计算机的开机时间 甚至还会延缓计算机的运行速度 为此 设置好计算机的开机
  • stata怎么判断是否存在异常值_基于Stata软件异常值识别与处理的全流程(原创)...

    来源 参考Stata帮助文件 由Taotao Tu原创 1 程序包的安装 首先 我们一起安装一下winsor2命令 方法一 ssc install winsor2 这是安装程序最简单的方法 从下图可以看到 我们已经安装好程序了 如果上面的方
  • 输入经纬度查询位置

    一 百度Web地图 1 进入百度地图 https map baidu com 2 点击下方的 地图开放平台 3 进入平台下拉 找到 工具支持 gt 坐标拾取器 4 勾选 坐标反查 输入经纬度 以英文逗号隔开 备注 百度地图手机端App 暂不
  • SQL注入篇--基础注入

    SQL注入篇 基础注入 1 SQL注入原理 sql注入的原理就是在服务器后端对数据库进行操作请求之前 人为地对sql语句做一些恶意注入 从而达到人为预期效果 造成数据泄露甚至数据破坏 注入漏洞在OWASP2021年的总结中位列TOP10的第
  • java学习笔记------接口

    接口 就是一种规则 是对行为的抽象 接口的定义和使用 接口用关键字interface来定义 public interface 接口名 接口不能实例化 接口和类之间是实现关系 通过implements关键字表示 public class 类名