Java泛型_继承

来源:互联网 发布:小背包学生 淘宝 编辑:程序博客网 时间:2024/06/11 19:56

泛型类的继承:

package com.ws.generic;/** * 泛型父类,子类为富二代  * 1、保留父类泛型 -->子类为泛型 * 2、不保留父类泛型 -->子类按需实现 *  * 属性及方法 类型 -->随位置而定 * 1)、子类重写方法的类型 -->随父类而定 *     子类新增方法的类型 -->随子类而定 * 2)、子类中使用父类的属性 -->随父类而定 *     子类中使用自己的属性 -->随子类而定 */abstract class  gobj<T1,T2>{T1 life;public abstract void kill(T2 t);}/* * 全部保留,泛型子类  */class c1<T1,T2,T3> extends gobj<T1, T2>{T3 attack;@Overridepublic void kill(T2 t) {// this.age--> T1System.out.println(t);}public void attck1(T3 t) {System.out.println(t);}}/* * 部分保留,泛型子类  */class c2<T1> extends gobj<T1, String>{@Overridepublic void kill(String t) {// this.age--> T1System.out.println(t);}}/* * 不保留,按需使用 */class c3 extends gobj<Integer, String>{@Overridepublic void kill(String t) {// this.age--> IntergerSystem.out.println(t);}}/* * 不指定,擦除 */class c4 extends gobj{@Overridepublic void kill(Object t) {// this.age--> ObjectSystem.out.println(t);}}public class genericextend {public static void main(String[] args) {c1 cc1 = new c1<Integer, String, Integer>();cc1.kill("击杀一个小鱼人!");cc1.attck1(18);c2 cc2=new c2<Integer>();cc2.kill("又击杀一个小鱼人!");c3 cc3=new c3();cc3.kill("第三次击杀一个小鱼人!");c4 cc4=new c4();cc4.kill("第四次击杀一个小鱼人!");}}
接口的继承,与类相同,不同之处在于,接口只有方法能使用泛型:

/* * 接口中泛型字符只能使用在抽象方法中,不能使用在全局变量中 *  */interface hero<T>{void show(T t); }//不指定class hero1 implements hero{@Overridepublic void show(Object t) {System.out.println(t);}}//指定 class hero2 implements hero<String>{@Overridepublic void show(String t) {System.out.println(t);}}//保留class herodfs<T> implements hero<T>{@Overridepublic void show(T t) {System.out.println(t);}}

0 0
原创粉丝点击