下面这种写法是什么意思啊
public abstract class abClass <S extends 类1,D extends 类2>extends 类3
S和D分别表示什么意思啊,为什么要这么写,有什么好处吗.谢谢了

解决方案 »

  1.   

    声明了一个抽象方法abClass是从类3继承过来的
    abClass有两个形参,第一个形参是S,只允许S从类1继承,第二个形参D也一样,必须是从类2继承过来的类型
      

  2.   

    class GenericsFoo<T extends Collection>,这样类中的泛型T只能是Collection接口的实现类,传入非Collection接口编译会出错。
      注意:<T extends Collection>这里的限定使用关键字 extends,后面可以是类也可以是接口。但这里的extends已经不是继承的含义了,应该理解为T类型是实现Collection接口的类型,或者T是继承了XX类的类型。
      

  3.   

    <S extends 类1,D extends 类2>
    类1这也可以是接口吧,这两个形参是做什么用的啊
      

  4.   

    <S extends 类1,D extends 类2>
    带上限通配符的泛型参数,
    public abstract class abClass <S extends 类1,D extends 类2>extends 类3 为什么这样写可以看下面的例子
    public class MyGenericClass<T> {
    private T data;


    public MyGenericClass(T obj){
    this.data=obj;
    }
    //public static T m3(T obj){

    //}//静态属性是在类加载的时候就初始化,而泛型参数是在类构造的时候才能确定。

    public void m1(T obj){
    T o1;
    }
    public T m2(){
    return data;
    }
    public static void main(String[] args){
    MyGenericClass<String> myc=
    new MyGenericClass<String>("hello");
    myc.m1("hehe");
    String str=myc.m2();
    }
    }