泛型接口

------------siwuxie095

在 JDK 1.5 之后,不仅可以声明泛型类,也可以声明泛型接口,

声明泛型接口和声明泛型类的语法类似,也是在接口后面加<T>

格式:

代码:


package com.siwuxie095.generic;

interface GenInter<T>{

//接口中的抽象方法前可以省略 public 和 abstract

void say();

}

// 子类实现接口,子类需要什么类型,可以在声明时直接指定

//当然也可以不指定,子类同样也声明为泛型,主方法中实例化时按照泛型方式正常使用即可

//class Gin<T> implements GenInter<T>{

class Gin implements GenInter<String>{

private String info;

//构造方法

public Gin(String info) {

this.info=info;

}

public String getInfo() {

return info;

}

public
void setInfo(String info) {

this.info = info;

}

//复写抽象方法

public
void say() {

}

}

public class GenericDemo05 {

public static
void main(String[] args) {

Gin g=new Gin("siwuxie095");

System.out.println(g.getInfo());

}

}

运行一览:

【made by siwuxie095】

时间: 2024-10-24 10:23:08

泛型接口的相关文章

泛型接口练习

泛型接口的说明高级应用

typealias和泛型接口

typealias 是用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰.使用的语法也很简单,使用 typealias 关键字像使用普通的赋值语句一样,可以将某个已经存在的类型赋值为新的名字.比如在计算二维平面上的距离和位置的时候,我们一般使用 Double 来表示距离,用 CGPoint 来表示位置: func distanceBetweenPoint(point: CGPoint, toPoint: CGPoint) -> Double { let dx = Double(

java 16 -7 泛型方法和泛型接口(泛型类相似)

写一个ObjectTool类 泛型方法:把泛型定义在方法上 格式 public <泛型类型> 返回类型 方法名(泛型类型) 这样的好处是: 这个泛型方法可以接收任意类型的数据 1 public class ObjectTool { 2 public <T> void show(T t) { 3 System.out.println(t); 4 } 5 } 再写一个测试类 1 public class ObjectToolDemo { 2 public static void mai

java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)

JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型  其实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1.str2的值是可变的.而泛型也是一样的,这样写class Java_Generics<K,V>,这里边的K和V就象方法中的参数str1和st

C# Unity 对于泛型接口的支持

最近和小伙伴们在做一个前台小框架, 已经有些人用起来了. 但是之前框架没有引入 Ioc, 所以用户实现我们框架开放出去的接口后,我们只能通过反射来获取用户的实现类.这样一个问题就是我们虽然定义了接口, 但其实我们依然依赖于用户的实现,同时框架启动异常的慢. 所以我们打算使用开源 Ioc 框架来把完成依赖注入的动作. 我们就完全关心我们自己的接口, 然后用户可以自己把实现类注入到框架中来,这样不仅移除了依赖,同是也砍掉了反射,可以加快加载速度. 因为开放的接口中定义了泛型接口,所以选中支持泛型接口

Java泛型:泛型类、泛型接口和泛型方法

原文出自:https://segmentfault.com/a/1190000002646193 泛型类 public class Container<K, V> { private K key; private V value; public Container(K k, V v) { key = k; value = v; } public K getKey() { return key; } public void setKey(K key) { this.key = key; } pu

编写高质量代码改善C#程序的157个建议——建议42:使用泛型参数兼容泛型接口的不可变性

建议42:使用泛型参数兼容泛型接口的不可变性 让返回值类型返回比声明的类型派生程度更大的类型,就是“协变”.如: public Employee GetAEmployee(string name) { Console.WriteLine("我是雇员:"+name); return new Programmer() { Name = name };//Programmer是Employee的子类 } Programmer是Employee的子类,所以Programmer对象也是Emplo

Java中接口继承泛型接口

在使用Mybatis做web开发时,每一个模块的数据持久层的接口都会定义:增删改查四个方法.我想为什么不新建一个Base接口来做所有数据持久层的父接口呢? 于是,我试验了一下,建立了一个泛型接口,里面定义了四个操作数据库的基本方法,对应增删改查: public interface BaseMapper<T> { public T selectByPrimaryKey(Integer id); public void insert(T t); public void updateByPrimar

java 泛型接口

泛型接口,就是泛型定义在接口上, public interface Inpl<T>{ void show(T t); } 实现类: public class ImInpl implements Inpl<String> { @Override public void show(String t) { } } 当子类实现接口时,要在接口的地方声明接口中方法传递的具体类型, 如果泛型放在子类类上 结果是这样: public class ImInpl<String> impl