关于interface(接口继承)extends(接口)interface的问题

2023-10-29

前序

一直以来,我们学习java就被灌输了一个观点:

类和抽象类(class)只能被继承(extends),接口(interface)只能被实现(implements)。

 

有个概念我们一直没有弄懂的是:类(class)可以实现接口(interface),但是接口(interface)跟接口(interface)之间呢?

类可以继承类和实现接口,如下:

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
    ....
}

举例

接口(interface)与接口(interface)之间的关系:也是继承(extends),看如下代码:

1、jdk源码中Deque<E>队列接口的实现定义

public interface Deque<E> extends Queue<E> {
   ....
  }

2、再看Queue<E>队列接口的实现定义

public interface Queue<E> extends Collection<E> {
    ....
}

结合1和2两个步骤来看,发现有点不对??接口(interface)怎么可以继承(extends)接口(interface)呢?

跟印象中学习的java有冲突不一样啊?!

揭晓

通过以上实例证明,接口与接口之间的关系是:继承(extends),所谓接口扩展的原因吧。

自行查看jdk源码即可发现。

 

同名原创公众号: 程序大视界

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于interface(接口继承)extends(接口)interface的问题 的相关文章

  • Pylance:“property”与“int”不兼容

    from typing extensions import Protocol class IFoo Protocol value int class Foo IFoo property def value self gt int retur
  • C# 中 getter 和 setter 的接口

    当我读到这里时http msdn microsoft com en us library 75e8y5dd 28v VS 100 29 aspx http msdn microsoft com en us library 75e8y5dd
  • getifaddrs() 结果发生变化时是否有通知机制?

    启动时 我的程序调用 getifaddrs 来查找哪些网络接口可用于链路本地 IPv6 多播 就目前而言 这是可行的 但它不能处理 getifaddrs 返回后可用网络接口集发生更改的情况 当网络接口发生更改时 操作系统是否有某种方式通知我
  • AXI4 流接口:如何在 HLS 中管理浮点数组以生成硬件加速器并在 RTL 项目中安全地连接它们?

    最后 我想做的是使用 Vivado Design Suite 中具有单精度浮点数组的流接口来构建硬件加速器 HLS 用户指南UG902 http www xilinx com support documentation sw manuals
  • 使用接口或函数对象进行回调? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在面向对象中 通常使用接口来实现回调 粗略示例 class Message class IMsgProcessor public virtual
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne
  • Delphi 中表单分发与其生命周期相关的接口对象的安全方法?

    我有一个 Delphi 表单 它提供接口对象背后的功能 代码的其他部分也通过属于该表单的属性获取引用 我无法将接口功能委托给子对象 因为太多的功能是由表单上的控件 组件提供的 我无法使用 TAggregateObject 或 TContai
  • 验证 C# 中的属性

    让我们建议我有一个接口并从中继承类 internal interface IPersonInfo String FirstName get set String LastName get set internal interface IRe
  • VLC 媒体播放器有 C# 界面吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以使用 C 控制台应用程序中的包装器从 VLC 播放中当前播放的文件中读取曲目统计信息 时间 标
  • SWI-Prolog 中的跨模块“接口”调用

    这可能是 SWI Prolog 模块系统特有的 假设我们有三个 Prolog 模块 在 SWI Prolog 模块系统中 robin 在文件中robin pl arthur 在文件中arthur pl helper 在文件中helper p
  • 为什么不直接使用 DateTime.Now 呢?

    最近一直在努力学习接口方面的知识 我看到了这段代码 但无法理解为什么你不直接使用DateTime Now在其自己的 我不确定为什么这个界面很有用 有人可以解释一下吗 这本书的作者试图解释 但我不太明白如何按照他们所说的方式实现它 程序员是否
  • 接口的隐式和显式实现

    在进行升级时 我碰巧遇到了这样的代码 interface ICustomization IMMColumnsDefinition GetColumnsDefinition class Customization ICustomization
  • 强制派生类实现接口

    我今天在这里 就像昨天一样 遇到了另一个奇怪的界面问题 我有一堂课 public class InputDevice
  • 扩展Android应用程序类

    当我正在寻找从远程设备获取错误报告的解决方案时 就像 iOS 中的试飞应用程序一样 我发现了acra适用于 Android 设备here http code google com p acra wiki BasicSetup 在基本设置中
  • MVC 3 将实体作为接口传递

    我目前正在开发一个 MVC 3 项目 使用 Ninject 作为我的 DI 业务对象存储在单独的程序集中 我遇到了控制器参数的问题 当回发 CRUD 操作时 我收到错误 无法创建接口实例 我知道您无法创建接口的实例 但似乎解决此问题的唯一方
  • Typescript 中的子类化

    我在 Typescript 中有一个存储类 它实现了Storage界面 说MyStorage 但它的方法太多了 所以我想用它来代替MyStorage getCandy MyStorage Candies getCandies 该结构可能看起
  • 抽象类、接口、mixins

    有人可以向我解释一下两者之间的区别吗抽象类 接口 and mixins 我之前在代码中使用过它们 但我不知道技术差异 抽象类 抽象类是不被设计为实例化的类 抽象类可以没有实现 部分实现或全部实现 抽象类旨在允许其子类共享公共 默认 实现 抽
  • 为什么不允许接口作为注释成员?

    考虑这段代码 Retention RetentionPolicy RUNTIME Target ElementType METHOD public interface Bar Foo foo default FooImpl FooConst
  • Django 如何将自定义变量传递到上下文以在自定义管理模板中使用?

    我正在扩展change list html 我需要输出settings py中定义的变量 如何将该特定变量传递到自定义管理模板上下文中 class MyModelAdmin admin ModelAdmin def changelist v
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中

随机推荐

  • Python实战:python URL请求地址的拼接,标准库urllib.parse详解

    目录 使用urllib parse urljoin 方法拼接URL 使用urllib parse urlencode 方法拼接查询参数 urlparse urlsplit urldefrag urlunparse urlunsplit 手写
  • Linux nc(NetCat)命令详解

    http blog csdn net wang7dao article details 7684998 NetCat 在网络工具中有 瑞士军刀 美誉 其有Windows和Linux的版本 因为它短小精悍 1 84版本也不过25k 旧版本或缩
  • sqlmap (os-shell)

    Dancing with your ghost 环境准备 Kali IP 10 10 16 128 win 7 IP 10 10 16 131 使用 phpstudy 搭建 sql 注入漏洞环境 NAT 网络连接 漏洞源码 查看源码可以得知
  • OpenGL学习之路18---- 点光源

    代码放在github上 根据教程 ogldev一步步开始 记录学习历程 之前学习了三个基于平行光的光照模型 相关博文如下 OpenGL学习之路15 环境光 OpenGL学习之路16 漫射光 OpenGL学习之路17 镜面反射光 平行光没有起
  • gensim 将文本变成一个向量 DOCtoVEC

    D2V
  • Cascade network——multi-stage refinement

    文章目录 List Preview AttractioNet 2016 CRAFT CRAFT Objects from Images 2016 CC Net chained cascade network for object detec
  • jar包手动添加到本地maven仓库详解

    第一步 下载需要添加的jar包 可以在maven库中查找下载 也可以在对应官网下载 maven库网址 需要验证是真人 https mvnrepository com 第二步 将下载的jar包放到指定位置 位置自己指定 用得到 建议放在mav
  • css-将网页全局置灰

    亲测百分之百有效 在一些情况下需要将网页的全局颜色进行置灰处理 但是又不能影响到其他属性 此时我们只需要在主框架的样式中增加该属性即可 filter grayscale 100
  • Java的String相关的加号+和append比较

    上例子 package com smile core public class StringAppend public static void main String args 字符串常量用 连成串 实际上等于一个字符串 效率最高 long
  • C++ STL 互斥体

    mutex 互斥量 非定时的互斥体类 标准库包含两个非定时的互斥体类 std mutex std recursive mutex 每个类都支持下列方法 lock 阻塞直到取到锁 trylock 立刻返回获取锁结果 unlock 已经拥有st
  • linux线程学习(二)

    上一个linux线程学习是不带锁的线程不安全形式 只要不用共享资源还是可以的 但实际工作中我们遇到的往往是需要保障线程的访问的 因此这里实现了一个简单的线程池 为线程池的实现提供思路 Status类封装了环境变量与锁 作为一种状态保障线程的
  • Python错误:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte...

    错误提示如下 tf2 C Users user gt python Python 3 7 6 packaged by conda forge default Mar 5 2020 14 47 50 MSC v 1916 64 bit AMD
  • libcurl教程

    这个文档是小编在curl官网上使用谷歌翻译翻译的 详细信息看官网 curl 基本描述 本文档试图描述使用 libcurl 编程时要考虑的一般原则和一些基本方法 本文将主要关注 C 接口 但可能会很好地适用于其他接口 也会讲解一些个C接口相似
  • mongodb设置账号密码授权案例

    1 给admin授权管理员权限 gt use admin gt db createUser user admin pwd 123456 roles role root db admin 如果需要修改admin密码 gt db changeU
  • 链表有环(引申题:环在哪里)

    public class Test private static class ListNode int value ListNode next public static boolean hasCycle ListNode head if
  • 采集校园卡消费信息可视化(安徽工商职业学院)

    闲的没事干 分析下我自己的一卡通消费信息 使用了以下技术进行数据分析并且环境已经搭建好 Hadoop hive mysql sqoop centos7 python zeppelin 思路 python爬自己的消费记录 存入到mysql s
  • pthread函数总结

    概括 https www cnblogs com tianzeng p 8934060 html
  • linux 运行scrapy,linux下部署scrapy

    1 如何部署scrapy 下载scrapy client 下载地址 https github com scrapy scrapyd client 并进行安装 安装命令 python setup install 进入项目目录 执行scrapy
  • 【Unity3D日常BUG】Unity3D中出现“动画片段必须标记为Legacy的警告”消除方法

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 在开发中可能会遇到下面的警告 The Ani
  • 关于interface(接口继承)extends(接口)interface的问题

    前序 一直以来 我们学习java就被灌输了一个观点 类和抽象类 class 只能被继承 extends 接口 interface 只能被实现 implements 有个概念我们一直没有弄懂的是 类 class 可以实现接口 interfac