定义一个泛型接口:
interface IMessage<T> {public void print(T t) ;
}
在接口上必须定义其子类,而泛型接口的子类有两种定义形式
形式一:在子类继续设置泛型:
class Message<T> implements IMessage<T>{
@Override
public void print(T t) {
System.out.println(t);
}
}
public class TestDemo {
public static void main (String [] args){
IMessage<String> im = new Message<String>() ;
im.print("Hello World !") ;
}
}
由于子类继续设置泛型,所以在使用时必须设置类型,并且子类设置的类型必须和接口设置的类型相同
形式二:在子类不设置泛型,而为父类接口定义一个泛型类型
class Message implements IMessage<String>{
@Override
public void print(String t) {
System.out.println(t);
}
}
public class TestDemo {
public static void main (String [] args){
IMessage<String> im = new Message() ;
im.print("Hello World !") ;
}
}
这种形式在子类实例化的时候就不用再设置泛型类型