博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
泛型之泛型类
阅读量:5973 次
发布时间:2019-06-19

本文共 1910 字,大约阅读时间需要 6 分钟。

泛型类

public class A
{ //在成员变量上使用泛型 private T t; public A() {} //构造参数类型上使用泛型 public A(T t) { this.t = t; } //方法返回值上使用泛型 public T getT() { return t; } //方法的参数上使用泛型 //这是泛型类的方法,而不是泛型方法 public void setT(T t) { this.t = t; } //方法的返回值和参数类型上使用泛型 public T foo(T t) { return t; } public void foo2() { //T t = ....; //局部变量的引用类型上使用泛型 //new T(); //不可以这样使用 } public void foo3() { //在创建泛型类对象时,即为类型变量赋值,这里将T赋值为String类型 A
a = new A
(); //将T赋值为Integer类型 A
a1 = new A
(); }}

A是一个泛型类,T它是一个变量,需要赋类型值,如果有多个类型变量,就用逗号分隔,比如 Jdk 的 Map 接口:interface Map<K,V> {}

定义:具有一个或多个类型变量的类,称之为泛型类
泛型类是一个存在类型变量的类,存在可变的因素,所以说是一个不完整的类。那么当子类去继承的时候,把里面的类型变量赋予了类型,那么这个类就完整了,就可以使用了。

泛型类的继承

public class B
{}class BB extends B
{}

创建BB对象的两种方式

  • B<String> b = new BB()
  • BB b = new BB()

错误方式

  • BB<String> bb = new BB<String>()

错误原因:BB 继承了泛型类 B,但 BB 并不是泛型类,所以不能这样创建对象。

public class C
{}class CC
extends C
{}class CCC
extends C
{}

创建CC对象

  • C<String> c = new CC<String>()
  • C<Integer> c = new CC<Integer>()

泛型引用和创建,两端给出的泛型变量必须相同(等号前后的泛型类型应该保持一致),否则会报错。

CC是泛型类,它的父类也泛型类,它可以给父类传递类型常量,也可以传递变量,这里传递的是变量。
CCC同样是泛型类,它的父类也是泛型类,它传递的是常量。

泛型类的子类重写父类方法

public class D
{ private T bean; public void setBean(T bean) { this.bean = bean; }}class DD
extends D
{ /** * 子类重写父类方法,参数类型必须是E,因为子类在定义 * 已经把类型E赋给了父类。 */ @Override public void setBean(E o) { //TODO }}class DDD
extends D
{ //子类定义时已经把类型String赋给了父类,所以方法重写时类型是String public void setBean(String str) { //TODO }}

转载地址:http://wkdox.baihongyu.com/

你可能感兴趣的文章
App重新启动
查看>>
矩阵乘法
查看>>
得到目标元素距离视口的距离以及元素自身的宽度与高度(用于浮层位置的动态改变)...
查看>>
安装和配置Tomcat
查看>>
实验三
查看>>
第一次实验总结
查看>>
openssh for windows
查看>>
PostgreSQL cheatSheet
查看>>
ASP.NET Core 2 学习笔记(三)中间件
查看>>
转:Mosquitto用户认证配置
查看>>
SpringBoot上传文件到本服务器 目录与jar包同级
查看>>
python开发_difflib字符串比较
查看>>
被解放的姜戈01 初试天涯
查看>>
三极管工作区在Spectre中的表示
查看>>
HT for Web的HTML5树组件延迟加载技术实现
查看>>
ASP.NET MVC 3 Razor Nested foreach with if statements
查看>>
【Mysql】命令行
查看>>
Asterisk 安装与配置
查看>>
利用日志记录所有LINQ的增,删,改解决方案
查看>>
实例讲解PostSharp(一)
查看>>