Java之泛型系列--继承父类与实现多个接口(有示例)

原文网址:Java之泛型系列--继承父类与实现多个接口(有示例)_IT利刃出鞘的博客-CSDN博客

简介

本文介绍java如何用泛型表示继承父类并实现多个接口。

用泛型表示某个类是某个类的子类或者实现了接口的方法为:<T extends A & B & C> 

  • 用法1:全都是接口。
    • 对于本例来说:A、B、C都是接口
  • 用法2:继承父类+实现接口:第一个必须是类(表示继承),& 后面的只能是接口。
    • 对于本例来说,A必须是类,B、C都是接口。
    • JDK的示例:Double类的定义:public final class Double extends Number implements Comparable<Double>

用法1:泛型都是接口

接口A

package com.example.a;public interface A {void welcome();
}

接口B

package com.example.a;public interface B {void fly();
}

接口C

package com.example.a;public interface C {void sing();
}

实现类

package com.example.a;public class A1 implements A,B,C{@Overridepublic void welcome() {System.out.println("A1:welcome");}@Overridepublic void fly() {System.out.println("A1:fly");}@Overridepublic void sing() {System.out.println("A1:sing");}
}

  泛型类

package com.example.a;public class D<V extends A & B & C> {private V v;public void test() {v.welcome();v.fly();v.sing();}public void setV(V v) {this.v = v;}
}

 测试类

package com.example.a;public class Demo {public static void main(String[] argv) {D<A1> d = new D<>();A1 a1 = new A1();d.setV(a1);d.test();}
}

测试结果

A1:welcome
A1:fly
A1:sing

用法2:泛型为父类+接口

接口B、接口C、泛型类、测试类都与上边一致。不一样的文件是:父类A、实现类A1。本处只贴出不一样的文件

父类A

package com.example.a;public class A {public void welcome() {System.out.println("A:welcome");}
}

实现类A1

package com.example.a;public class A1 extends A implements B,C{@Overridepublic void fly() {System.out.println("A1:fly");}@Overridepublic void sing() {System.out.println("A1:sing");}
}

测试结果

A:welcome
A1:fly
A1:sing

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

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

相关文章

瑞芯微推理RKNN使用

参考资料 toolkit2 官网资料 野火实践指南 Ubuntu22.04实践 安装toolkit2 安装命令pip3 install -r xxx/packages/requirements_cp310-1.6.0.txt pip3 install xxx/packages/rknn_toolkit2-1.6.081f21f4d-cp310-cp310-linux_x86_64.whl注意加上 -i xxx 可能会造成下载tf-es…

react中hook封装一个table组件

目录 react中hook封装一个table组件依赖CommonTable / index.tsx使用组件效果 react中hook封装一个table组件 依赖 cnpm i react-resizable --save cnpm i ahooks cnpm i --save-dev types/react-resizableCommonTable / index.tsx import React, { useEffect, useMemo, use…

4. ⼤模型微调方法

到底有哪些微调⽅法呢&#xff1f; 第⼀类⽅法&#xff1a;借助OpenAI提供的在线微调⼯具进⾏微调&#xff1b;第⼆类⽅法&#xff1a;借助开源微调框架进⾏微调&#xff1b; 1. OpenAI在线微调⼯具 网址&#xff1a;https://platform.openai.com/docs/guides/fine-tuning/c…

跟着GPT学设计模式之原型模式

如果对象的创建成本比较大&#xff0c;而同一个类的不同对象之间差别不大&#xff08;大部分字段都相同&#xff09;&#xff0c;在这种情况下&#xff0c;我们可以利用对已有对象&#xff08;原型&#xff09;进行复制&#xff08;或者叫拷贝&#xff09;的方式来创建新对象&a…

EasyRecovery2024永久免费版电脑数据恢复软件下载

EasyRecovery数据恢复软件是一款非常好用且功能全面的工具&#xff0c;它能帮助用户恢复各种丢失或误删除的数据。以下是关于EasyRecovery的详细功能介绍以及下载步骤&#xff1a; EasyRecovery-mac最新版本下载:https://wm.makeding.com/iclk/?zoneid50201 EasyRecovery-win…

C++中的时间工具

目录 编译期有理数持续时间 duration时钟时间点 本文主要记录C标准中提供的时间处理工具&#xff0c;并提供简单实现的Linux平台的定时器demo C标准库中的chrono库提供了处理时间和日期相关的功能&#xff0c;头文件&#xff1a;#include<chrono>&#xff1b;这个库包含以…

一台Mac同时安装vue2和vue3

背景&#xff1a;电脑需要运行vue2和vue3项目&#xff0c;就得同时有vue2和vue3环境&#xff0c;之前以配置好vue2了&#xff0c;现在增加vue3 1. 新建一个安装vue3的目录 进入vue3文件夹安装vue3 // 注意这里没有参数-g&#xff0c;因为-g全局安装的命令 npm install vue/cli…

Yearning审核平台本地安装配置并结合内网穿透实现远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

Linux的Vi编辑器显示行数

前言 要在Vi编辑器中显示行数&#xff0c;您可以使用以下方法&#xff1a; 临时显示 进入Vi编辑器。按下 Esc 键确保你处于普通模式。输入 :set number 并按下 Enter 键。 这样就会在Vi编辑器的左侧显示行号。如果想要关闭行号显示&#xff0c;可以输入 :set nonumber 并…

Rust安装——Win10

安装步骤 1、下载RUSTUP-INIT.EXE&#xff08;64-BIT&#xff09; 2、由于国外源下载依赖太慢&#xff0c;因此建议增加win10环境变量配置国内源&#xff0c;增加RUSTUP_DIST_SERVER、RUSTUP_UPDATE_ROOT环境变量即可 RUSTUP_DIST_SERVER随便选择其中的一个源就行&#xff0c;…

人工智能|深度学习——使用多层级注意力机制和keras实现问题分类

代码下载 使用多层级注意力机制和keras实现问题分类资源-CSDN文库 1 准备工作 1.1 什么是词向量? ”词向量”&#xff08;词嵌入&#xff09;是将一类将词的语义映射到向量空间中去的自然语言处理技术。即将一个词用特定的向量来表示&#xff0c;向量之间的距离&#xff08;例…

学习感觉累 速度慢 反应迟钝 容易忘记 说话累 学习的后勤保障

学习的后勤保障 1、睡眠质量 2、精神勿过度紧张 3、过度用脑 4、适量运动 5、营养充足 6、保持新鲜生活每一天 7、简约生活&#xff0c;适中。 8、保持各方面状态良好 身体比较虚弱&#xff0c;气血不足&#xff0c;说话没几句就很累。 身体虚弱和气血不足的问题需要从多方面…

2.6学习总结10

动态规划 知识点 动态规划是一种解决问题的策略&#xff0c;适用于具有重叠子问题和最优子结构性质的问题。 动态规划的基本思想是将原问题分解为一系列子问题&#xff0c;通过求解子问题的最优解来得到原问题的最优解。在求解子问题时&#xff0c;利用已经求解过的子问题的…

力扣热门100题 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目描述&#xff1a;示例&#xff1a;提示&#xff1a;解题思路 &#xff08;滑动窗口 哈希表&#xff09;&#xff1a;代码&#xff1a; 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &…

step导入到solidworks外观处理方法

在导入到solidworks中的kuka机器人会变成灰色。看上去很不好看。如何才能大体恢复一下原外观呢&#xff1f;主要可以使用如下两种方法。 主要是使用了将里面的形状单独变成零件&#xff0c;方便装配&#xff0c;使机器人可以变化姿态。造成外观颜色丢失。 1.外观复制 如下图所…

springboot165科研工作量管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

WebSocket基础详解

文章目录 前言由来简介优缺点适用场景兼容性 API介绍构造函数实例方法send()close() 实例属性ws.readyState&#xff08;只读&#xff09;ws.bufferedAmount&#xff08;只读&#xff09;ws.binaryTypeextensions&#xff08;只读&#xff09;protocol&#xff08;只读&#xf…

Power Designer的使用 创建数据库表模型,生成sql语句,生成C#实体类

几年前用过PowerDesigner&#xff0c;好几年没用&#xff0c;有点忘记了&#xff0c;在这里记个笔记&#xff0c;需要的时候翻一翻 PowerDesigner版本16.5 下面的例子是以MySQL数据库为准 生成C#实体类 一 安装 1.1 安装 不让放网盘链接&#xff0c;审核通不过。。。。 …

JCTC | 利用几何深度学习对蛋白质-配体结合pose进行等变灵活建模

Overview 该论文解决了药物开发中蛋白质-配体复合结构灵活建模的挑战。作者提出了一种名为FlexPose的新型深度学习框架&#xff0c;它可以直接对复杂结构进行建模&#xff0c;而不需要传统的采样和评分策略。 该模型结合了标量-向量双特征表示和 SE(3)等变网络设计来处理动态结…

用Python做一个文件夹整理工具

文章目录 目标文件夹对话框文件映射组件完整组件 此前曾经基于函数实现过这个功能&#xff1a;用Python做一个文件夹整理工具。这次基于面向对象的方法&#xff0c;重新实现这个小工具。 本文中提到的FileSystem&#xff0c;来自于这里&#xff1a;Python根据文件后缀整理文件…