泛型接口
泛型除了可以在类上定义之外也可以直接在接口之中进行使用。
范例:定义一个泛型接口
interface IMessage<T>
{
public abstract String echo(T t);
}
对于泛型接口的子类而言现在就有两种实现方式。
- 在子类之中继续设置泛型定义
class JavaDemo
{
public static void main(String[] args)
{
IMessage<String> msg = new MessageImpl<String>();
System.out.println(msg.echo("我是一个字符串"));
}
}
interface IMessage<T>
{
public abstract String echo(T t);
}
class MessageImpl<S> implements IMessage<S>
{
public String echo(S t){
return "【echo:】" + t;
}
}
- 实现方式二:在子类实现父接口的时候直接定义出具体类型
class JavaDemo
{
public static void main(String[] args)
{
IMessage<String> msg = new MessageImpl();//接口泛型传入String
System.out.println(msg.echo("我是一个字符串"));
}
}
interface IMessage<T>
{
public abstract String echo(T t);
}
class MessageImpl implements IMessage<String>//子类直接定义String类型
{
public String echo(String t){
return "【echo:】" + t;
}
}
如果从概念和实现上来讲并不复杂,但是在日后会遇见大量出现有泛型的接口,这个时候一定要清楚两种实现原则。