首页 > 代码库 > Java 泛型
Java 泛型
package genericity.gen03;/* * 父类为泛型类 * * 要么同时擦除,要么子类类型 >= 父类类型;不能子类擦除,父类泛型 * 1.属性类型 * 父类中,随父类而定 * 子类中,随子类而定 * 2.方法重写 * 随父类而定 * */public abstract class Father<T1,T2> { T1 name; public abstract void test(T1 t); }/* * 子类声明时指定具体的父类类型 * 属性类型为具体类型 * 方法同理 */class Child1 extends Father<String,Integer>{ @Override public void test(String t) { name = t; }}/* * 子类为泛型,类型在使用时确定 */class Child2<T2,T1> extends Father<T1,T2>{ @Override public void test(T1 t) { // TODO Auto-generated method stub } }/* * 子类为泛型类,父类不指定类型,泛型的擦除,使用Object替换 * */class Child3<T1,T2,T3> extends Father{ @Override public void test(Object t) { // TODO Auto-generated method stub }}/* * 子类与父类同事擦除 */class Child4 extends Father{ @Override public void test(Object t) { // TODO Auto-generated method stub } }/* * 错误:子类擦除,父类使用泛型class Child5 extends Father<T1, T2>{ @Override public void test(genericity.gen03.T1 t) { // TODO Auto-generated method stub }} */
package genericity.gen03;/* * 泛型接口 * 重写方法随父类而定 * */public interface Comparable<T> { void test(T t);}//声明子类指定具体类型class Comp0 implements Comparable<Integer>{ @Override public void test(Integer t) { // TODO Auto-generated method stub } }/* * 擦除 * 1.继承或实现声明时不指定类型 * 2.使用时 不指定类型 * 统一以Object类型对待 * 1.编译器警告,使用Object可以消除 * 2.不完全等同于Object */class Comp1 implements Comparable{ @Override public void test(Object t) { // TODO Auto-generated method stub } }//父类擦除,子类泛型class Comp2<T> implements Comparable{ @Override public void test(Object t) { // TODO Auto-generated method stub } }//子类泛型 >= 父类泛型class Comp3<T> implements Comparable<T>{ @Override public void test(T t) { // TODO Auto-generated method stub } }//错误:父类泛型,子类擦除
Java 泛型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。