本文主要是介绍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
这篇关于Java之泛型系列--继承父类与实现多个接口(有示例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!