本质:类中的属性或者方法的参数,在定义类的时候不设置具体的类型,只使用一个标记表示,,而在类使用时才会为其动态的绑定一种数据类型。,
范例:
模式一:子类继续使用泛型
interface IMessage<T>{ //接口用IXxx命名、抽象类:AbstractXxxx public void print(T t); //此方法使用了泛型 } class MessageImpl<P> implements IMessage<P>{ public void print(P t) { System.out.println(t); } } public class Hello{ public static void main(String[] args) { IMessage<String> msg = new MessageImpl<String>(); msg.print("Hello"); } }
模式二:在子类定义是不使用泛型,直接为父接口设置好泛型类型
interface IMessage<T>{ //接口用IXxx命名、抽象类:AbstractXxxx public void print(T t); //此方法使用了泛型 } class MessageImpl implements IMessage<String>{ public void print(String t) { System.out.println(t); } } public class Hello{ public static void main(String[] args) { IMessage<String> msg = new MessageImpl(); msg.print("Hello"); } }
泛型方法:在一个方法上使用了泛型就是泛型方法