/**
泛型可以继承 或者实现 但是在继承或者实现的时候 必须 泛型的范围需要放大或者相同 但是在相同的时候 必须指定 父类的或者接口的泛型 tips:泛型不存在继承关系 Collection list = new ArrayList();这种是没有泛型的 泛型会把所有的继承关系在不明确指出本类泛型的基础上 是要将所有泛型变成object类的*/ public interface Fu<E> { public E[] method(E[] e); } abstract class Mu<E>{ public abstract E[] method(E[] e); } /** * 在确定参数的时候 * 如果是直接用父类的泛型参数 * 那么就需要子类同时表明参数 */ class ZI<E> implements Fu<E>{ @Override public E[] method(E[] e) { return e; } }
//父类和子类的泛型可以不同但是根据多态的 //要求所有的子类重写方法仅仅是方法体的不同 //因此要求所有的返回值类型或者返回 //都是父类的泛型类性 class ZII<Object> implements Fu<String>{ @Override public String[] method(String[] e) { return new String[0]; } @Override public String getE() { return null; } class ZIIi<String> implements Fu<Object>{ @Override public Object[] method(Object[] e) { return e; } @Override public Object getE() { return null; } }
class ZII implements Fu{
@Override
public Object[] method(Object[] e) {
return new Object[0];
}
}
class nv extends Mu{
@Override
public Object[] method(Object[] e) {
return new Object[0];
}
}
class nvv<E> extends Mu<E>{
@Override
public E[] method(E[] e) {
return e;
}
}