泛型

泛型指的就是一种类型,泛型一般都跟<>使用,例如< String>,就代表这是String类型的,一般联合集合使用List< Student>代表Student类型的集合

泛型类

//注意这里PPP只是相当于一个"形参"在外界可以给PPP任何一个类型
public class generic<PPP> {PPP p;//来一个有参构造,给需要传递一个类型,在外界,可以传任何类型,Student类,worker类public generic(PPP p) {super();this.p = p;           //将p赋值为外界传来的对象}//需要注意的是:虽然p是外界传进来的对象,但这个对象的方法是调用不到的,只能使用
//所有类的父类Object里的方法public void showEat() {System.out.println(p.toString());}}

泛型方法

public class GenericityMethod {// 这就是泛型方法的书写格式,当外界调用这个方法时,// 可以传进来任何类型的对象public <PPP> void run(PPP p) {System.out.println(p.toString());}public static void main(String[] args) {GenericityMethod g = new GenericityMethod();// 在本包的创建了两个类Student s = new Student();Worker w = new Worker();// PPP只是一个形式,就是告诉你,想要调用这个方法就要// 传递进来一个对象,什么对象都行g.run(s);g.run(w);}
}

注意:这里需要和多态进行一个区别,这俩都是可以传递进来一个不同的对象,需要主要的是多态传进的对象可以调用这个对象的方法,而泛型方法传进来的对象是不能调用这个对象的方法的,只能调用所有父类Object类的方法!!!!!

泛型通配符

对于一个泛型类,为了规范可传入的类型这产生了一个泛型通配符
来一个泛型类

public class generic<PPP> {PPP p;public generic(PPP p) {super();this.p = p;}public void showEat() {System.out.println(p.toString());}}

这里还有一个Person父类,以及Person的两个子类就不写了

public class GenericityMethod {// 这就是泛型方法的书写格式,当外界调用这个方法时,// 可以传进来任何类型的对象//这里?代表所有的意思//? extends Person    所有继承Person的子类 //则这个泛型类只有继承Person的子类可以将对象传递不去//不在是没有通配符时所有的对象都可以传递进去public void run(generic<? extends Person> p) {p.showEat();}public static void main(String[] args) {GenericityMethod g = new GenericityMethod();Worker w = new Worker();Student s = new Student();generic<Worker> gt = new generic<Worker>(w);generic<Student> gt2 = new generic<Student>(s);g.run(gt);g.run(gt2);}
}

泛型(泛型类、泛型方法)相关推荐

  1. 【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 )

    文章目录 一.Dart 泛型类与泛型方法 二.Dart 泛型中的特定类型约束 三.Dart 自带泛型 四.完整代码示例 五. 相关资源 一.Dart 泛型类与泛型方法 泛型作用 : 为 类 , 接口 ...

  2. 鸟欲高飞先振翅,人求上进先读书 [泛型 泛型类 泛型方法 泛型接口 泛型通配符详解]

    文章目录 5. 泛型 5.1 泛型概述[理解] 5.2 为什么会引入泛型? 5.3 泛型的好处 5.4 泛型的定义格式 5.5 泛型类[应用] 5.6 泛型方法 5.7 泛型接口[应用] 5.8类型通 ...

  3. 【Java 泛型】泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )

    文章目录 一.泛型简介 二.泛型类 三.泛型方法 四.静态方法的泛型 五.泛型类与泛型方法完整示例 一.泛型简介 泛型 可以 简单理解为 参数化类型 , 主要作用在 类 , 方法 , 接口 上 ; j ...

  4. java泛型程序设计——定义简单泛型类+泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 定义泛型类+泛型方法的知识: [1]一个泛型类: 就是具有一个或多个 ...

  5. Java泛型(泛型类,泛型方法,静态方法泛型,泛型类与泛型方法例子)

    泛型 泛型简介 泛型可以理解为参数化类型,主要作用在类,方法和接口上. Java泛型 与 C++ 模板 : Java 中的泛型 , 是仿照 C++ 中的模板开发的 , 目的是让开发者可以写出通用,灵活 ...

  6. 什么是泛型,为什么要使用泛型? 泛型类和泛型方法的实现以及限定通配符的使用。什么是泛型擦除,为什么有泛型擦除,泛型擦除到底是怎么实现的

    1. 泛型的定义和意义 1.1 什么叫泛型? 泛型,顾名思义就是广泛的类型,专业术语为"参数化类型":当我们创建对象时没指定类型,任何引用类型都可以使用,兼容多种数据类型.如果是基 ...

  7. 今天我才明白了泛型,泛型类 泛型方法

    写程序一年多了.才懂得泛型真正的意思是.以前以为Ilist<>这样就是泛型. 今天豁然开朗.list其实是集合而泛型的真正是在后面那个尖括号里面. 转载于:https://blog.51c ...

  8. 【Java泛型】泛型方法

    泛型类,是在实例化类的时候指明泛型的具体类型 泛型方法,是在调用方法的时候指明泛型的具体类型 泛型方法能使方法独立于类而产生变化 如果static方法要使用泛型能力,就必须使其成为泛型方法 impor ...

  9. C#中的泛型 / 泛型类 / 数组、ArrayList和List三者的区别

    C#中数组.ArrayList和List三者的区别 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的, ...

最新文章

  1. python-匿名函数lambda
  2. 设计模式之Builder(建造者)(转)
  3. Mybatis的第三章动态sql总结
  4. Funtion:POPUP_TO_DECIDE_LIST
  5. 浅谈JavaScript作用域,关于Java的学习路线资料
  6. 关于自定义的登录机制在SAP Spartacus服务器端渲染(SSR)实施过程中遇到的问题
  7. matlab程序聚类预测机器学习
  8. Solr Facet技术的应用与研究
  9. LamBda学习(一)
  10. xss绕过字符过滤_IE8 xss filter bypass (xss过滤器绕过)
  11. python语言适合哪些领域的计算问题数据处理和文本挖掘_R和Python中文本挖掘8大入门指南...
  12. Windows 下 Composer 与 Laravel 4 的安装
  13. PDF文件编辑方法:PDF怎么插入图片背景
  14. java多边形生成_如何为凹多边形生成回声路径
  15. Session使用方法详解
  16. 网易博客搬家至CSDN博客指南
  17. 关于CAN报文中ACK应答错误的检测原理
  18. 亲测源码小旋风蜘蛛池站群X8.51+自带30套模板
  19. 美国计算机专业的大学,美国计算机专业什么大学好
  20. 7-42 sdut-循环-3-评委评分(II)

热门文章

  1. 业务运营支撑系统  BOSS(Business Operation Support System)。
  2. 【RDMA】14. RDMA之Memory Window
  3. Java基础---继承、抽象、接口
  4. 2022/1/23(每周总结)
  5. 冒泡算法java代码实现
  6. 如何从GFP确定最后申请的内存来自哪个zone?
  7. 康特EPON OLT开局配置
  8. [MySQL]初始JDBC编程
  9. 怎样学习人工智能呢?
  10. map和multimap的详解(C++)