zoukankan      html  css  js  c++  java
  • Java中的泛型

    泛型概念:泛指某一种类型。

    使用时机:
    创建一个对象的时候, 明确泛型。
    调用一个方法的时候,明确泛型。
    创建一个类,然后类实现一个接口的时候,明确泛型。

    泛型作用:

    1,让程序更精确
    比如Arraylist al = new ArrayList<>();
    2,提高程序的 可扩展性 兼容性,体现可扩展性的地方就是我们下面要提到的泛型类,泛型方法,泛型接口。

    泛型类

    娱乐公司类:

    游戏公司类:

    动漫公司类:

    泛型类例子:
    创建一个对象的时候, 明确泛型。

    结果:

    通过泛型可以用一个Entertainment_Company类来打印操作多种类型,
    具体类型与Entertainment_Company<>尖括号里的泛型有关系。
    缺点:需要建立很多不同公司类型的对象。

    泛型方法:

    娱乐公司类:

    游戏公司类:

    动漫公司类:

    泛型类例子:
    调用一个方法的时候,明确泛型。

    结果:

    我们把泛型只加在Entertainment_Company类中的show方法上,这样我们使用这个show方法的时候才明确泛型。
    所以创建对象的时候不需要明确泛型,一个对象就足够了。

    泛型接口:

    公司接口:

    玩类:

    游戏公司类:继承公司接口未定泛型

    动漫公司类:继承公司接口确定泛型是Entertainment类型

    结果:

    泛型通配符

    不确定类型<?>


    并不能创建对象,我们一般用来做接收。

    表示任意类型。

    自己和自己的子类<? extends 类>

    不能创建对象,用来做接收,范围是这个类以及其子类。

    无法通过编译,Animal不是Cat的子类而是父类

    通过编译,Animal是Cat的父类

    没add过就输出俩[]空集了。

    自己和自己的父类<? super 类>

    同理不能创建对象,用来做接收,范围是这个类以及其父类。

    无法通过编译,Cat不是Animal的父类而是子类

    通过编译,Animal是Cat的父类

    没add过就输出俩[]空集了。

  • 相关阅读:
    gcc编译器遇到的部分问题的总结(二)
    gcc编译器遇到的部分问题的总结
    Illegal instruction与march编译选项
    使用using与typedef来定义别名
    C++模板学习之递归
    C++模板学习之typename
    简单的listen+fork accept服务器实现
    一个简单的日志类的开发
    linux中的select和epoll模型
    程序异常退出调试(二)
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/11889726.html
Copyright © 2011-2022 走看看