/*
* 泛型接口
*/
interface Tool<t> {
public void show(T t); //泛型方法
public <e> void print(E e);
} /*
* 这种方式适合实现接口的时候就知道类里的泛型是什么
*/
class ToolImpl implements Tool<string> { @Override
public void show(String t) {
System.out.println("show:" + t);
} @Override
public <e> void print(E e) {
System.out.println("print:" + e);
} } /*
* 这种方式不好!
*/
class Tool2Impl implements Tool { @Override
public void show(Object t) {
System.out.println("show obj" + t);
} @Override
public void print(Object e) {
System.out.println("show obj" + e);
} } /*
* 这种方式适合使用的时候指定泛型
* 在继承接口的时候不用指定泛型
* 注意的是<t>也可以写成别的比如<c>
* 写成<e>的话,类上的<e>和print方法
* 上的<e>也不是一个类型
*/
class Tool3Impl<t> implements Tool<t> { @Override
public void show(T t) {
System.out.println("show=" + t);
} @Override
public <e> void print(E e) {
System.out.println("print=" + e);
} } /*
* 这个写法中show方法和print方法用的泛型也不是一个
* 类上的<e>和print方法上的<e>不是一个类型!!!
*/
class Tool4Impl<e> implements Tool<e> { @Override
public void show(E t) {
System.out.println("show-" + t);
} @Override
public <e> void print(E e) {
System.out.println("print-" + e);
} } /*
* 错误!
* class Tool5Impl<string> implements Tool<t> {
*
* }
*/
/*
* 正确,但是这个泛型上的String没意义,和Tool3Impl写法没区别
* class Tool5Impl<string, t=""> implements Tool<t> {
*
* }
*/
/*
* 错误1
* class Tool5Impl<string|t> implements Tool<e> {
*
* }
*/
/*
* 正确,但是这个泛型上的String|T没意义,和Tool4Impl写法没区别
* class Tool6Impl<string|t, e=""> implements Tool<e> {
*
* }
*/
public class GenericDemo { public static void main(String[] args) {
ToolImpl ti = new ToolImpl();
ti.show("nihao");
ti.print(6);
Tool3Impl<string> t3i = new Tool3Impl<string>();
t3i.show("haha");
t3i.print(6);
Tool4Impl<string> t4i = new Tool4Impl<string>();
t4i.show("hehe");
t4i.print(6);
} }

  

java 泛型接口示例的更多相关文章

  1. 正则表达式学习笔记(附:Java版示例代码)

    具体学习推荐:正则表达式30分钟入门教程 .         除换行符以外的任意字符\w      word,正常字符,可以当做变量名的,字母.数字.下划线.汉字\s        space,空白符 ...

  2. Java发送邮件示例

    利用Java发送邮件示例: 1.发送QQ邮件 import java.util.Properties; import javax.mail.Message; import javax.mail.Mes ...

  3. Java 泛型示例 - 泛型方法,类,接口

    Java Genrics 是 Java 5 中引入的最重要的功能之一. 如果您一直在使用Java Collections并使用版本 5 或更高版本,那么我确定您已经使用过它. Java 中具有集合类的 ...

  4. HBase Java简单示例

    Hbase采用Java实现,原生客户端也是Java实现,其他语言需要通过thritf接口服务间接访问Hbase的数据. Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Had ...

  5. JAVA JPA - 示例用法

    JPA(Java Persistence API)是JSR(Java Specification Requests)的一部分,定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate. ...

  6. HBase Java简单示例--转载

    Hbase采用Java实现,原生客户端也是Java实现,其他语言需要通过thritf接口服务间接访问Hbase的数据. Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Had ...

  7. JAVA泛型接口

    事例代码: package com.xt.thins_15_3; import java.util.Iterator; /** * 泛型接口 * * @author xue * * @param &l ...

  8. 【转载】Java重构示例【1】

    序言 本文通过Java示例代码片段展示了常用重构原则和技巧,供初级开发人员参考.精致的代码能够清楚传达作者的意图,精致的代码是最好的注释,精致的代码非常容易维护和扩展.程序员阅读精致的代码如同大众欣赏 ...

  9. Java 设计模式 -- 示例指南

    设计模式在软件开发者中非常受欢迎的.每个设计模式都是对常见软件问题的通用的描述解决方案. 我们使用设计模式的好处有: 1.设计模式已经对于一个重复出现的问题进行了定义并且提供了工业标准的解决方案,因为 ...

随机推荐

  1. sqlplus无密码登录TNS协议适配器错误

    登录到sqlplus使用无密码登录用户时出现:TNS协议适配器错误 检查自己是否有多个数据库,可能默认登录的数据库服务没有启动,启动即可. 查看当前数据库名  select name from v$d ...

  2. 【转】 memset()的效率以及源码分析

    void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常 ...

  3. node.js基础 1之 URL网址解析的好帮手

    URL和URI的区别: URL是统一资源定位符 URI是统一资源标识符 URL是URI的子集(URL一定是URI,但URI不一定是URL) node中的URL中的url.parse protocol: ...

  4. break和continue的区别

    break是结束整个循环体,continue是结束单次循环

  5. 如何在MapControl界面添加双击事件实现标绘及符号样式更改

    private void axMapControl1_OnDoubleClick(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnDo ...

  6. DeepLearning之路(一)逻辑回归

    逻辑回归 1.  总述 逻辑回归来源于回归分析,用来解决分类问题,即预测值变为较少数量的离散值. 2.  基本概念 回归分析(Regression Analysis):存在一堆观测资料,希望获得数据内 ...

  7. Rhel6-cacti+nagios+ganglia(apache)配置文档

    (lamp平台) 系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 1 ...

  8. Ubuntu-搜狗输入法

    Sougou(搜狗):要换fictx输入法,先删除ibus输入法.搜索sudo apt-get purge ibussudo apt-get autoremove 然后安装fcitx和拼音输入法(要安 ...

  9. SharePoint 2016 Beta 2 安装体验

    博客地址:http://blog.csdn.net/FoxDave 最近忙碌了一段时间,2016正式版快要发布了,想尽快熟悉熟悉.2016不再提供免费版Foundation的支持,只有Server版本 ...

  10. 绑定hosts

    测试过程中需绑定hosts.将测试环境IP绑定域名,输入域名即可连接到测试环境. 1  hosts文件地址:C:\WINDOWS\system32\drivers\etc 2  用记事本打开hosts ...