简介
本文介绍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
请先
!