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{
@Override
public void welcome() {
System.out.println("A1:welcome");
}
@Override
public void fly() {
System.out.println("A1:fly");
}
@Override
public 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{
@Override
public void fly() {
System.out.println("A1:fly");
}
@Override
public void sing() {
System.out.println("A1:sing");
}
}
测试结果
A:welcome
A1:fly
A1:sing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix