/*
* 泛型接口
*/
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 泛型详解(普通泛型、 通配符、 泛型接口)

    java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...

  2. java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

    对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 1. 概述 泛型在 ...

  3. 【转】java 泛型详解

    java 泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 ...

  4. 【转载】Java泛型详解

    [转载]http://www.importnew.com/24029.html 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考 ...

  5. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  6. 黑马----JAVA迭代器详解

    JAVA迭代器详解 1.Interable.Iterator和ListIterator 1)迭代器生成接口Interable,用于生成一个具体迭代器 public interface Iterable ...

  7. C++调用JAVA方法详解

    C++调用JAVA方法详解          博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...

  8. Java虚拟机详解----JVM常见问题总结

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

随机推荐

  1. 1369 - Answering Queries(规律)

    1369 - Answering Queries   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 M ...

  2. 使用ActionBar实现Tab导航(快速生成Tab样式)

    效果如图: MainActivity.java具体实现: package com.rainmer.actionbartab; import android.app.ActionBar; import ...

  3. [Swust OJ 249]--凸包面积

        题目链接:    http://acm.swust.edu.cn/problem/0249/   麦兜是个淘气的孩子.一天,他在玩钢笔的时候把墨水洒在了白色的墙上.再过一会,麦兜妈就要回来了, ...

  4. 函数嵌套 lisp表达式求值

    问题 D: lisp表达式求值 时间限制: 1 Sec  内存限制: 128 MB提交: 105  解决: 43[提交][状态][讨论版] 题目描述 lisp是一种非常古老的计算机语言,是由约翰·麦卡 ...

  5. Tcl语言笔记之二

    1,表达式 1.1 操作数 TCL表达式的操作数通常是整数或实数.整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作 ...

  6. 执行Git命令时出现 SSL certificate problem 的解决办法

    比如我在windows下用git clone gitURL 就提示  SSL certificate problem: self signed certificate 这种问题,在windows下出现 ...

  7. 设计模式(十)享元模式Flyweight(结构型)

    设计模式(十)享元模式Flyweight(结构型) 说明: 相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释 ...

  8. 基于visual Studio2013解决算法导论之045斐波那契堆

     题目 斐波那契堆 解决代码及点评 // 斐波那契堆.cpp : 定义控制台应用程序的入口点. // #include<iostream> #include<cstdio> ...

  9. centos 推荐使用epel源

    centos 推荐使用epel源 张映 发表于 2011-10-13 分类目录: linux 在dell r410上面装的是centos6,64的操作系统,用的163的源,我一直都是用163的源,比较 ...

  10. Vedis - An Embeddable Datastore Engine

    Vedis - An Embeddable Datastore Engine     An Embeddable Datastore Engine         Tweet        Follo ...