Java泛型 继承中类型变量的关系
来源:互联网 发布:js 屏蔽鼠标中键 编辑:程序博客网 时间:2024/06/15 05:27
通过例子来看泛型类在继承中过程中类型变量应该具有怎样的关系。
首先给出几个辅助类:
package generic;public class Animal { }
package generic;public class Person extends Animal {private String name;public Person(String name) {super();this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person [name=" + name + "]";}public Integer printAndReturn() {return 1;}}
package generic;public class Student extends Person {private String studentNumber;public Student(String name, String studentNumber) {super(name);this.studentNumber = studentNumber;}public String getStudentNumber() {return studentNumber;}public void setStudentNumber(String studentNumber) {this.studentNumber = studentNumber;}@Overridepublic String toString() {return "Student [studentNumber=" + studentNumber + ", name="+ getName() + "]";}}
package generic;public class Building {private String name;public Building(String name) {super();this.name = name;}}
package generic;/** * @version 1.00 2004-05-10 * @author Cay Horstmann */public class Pair<T extends Person> { private T first; private T second; public Pair() { first = null; second = null; } public Pair(T first, T second) { this.first = first; this.second = second; } public T getFirst() { return first; } public T getSecond() { return second; } public void setFirst(T newValue) { first = newValue; } public void setSecond(T newValue) { second = newValue; } }
1.子类的类型变量表示的范围必须与父类一样或者是父类的子集
package generic;public class PariSon<T extends Person> extends Pair<T> {}
或
public class PariSon<T extends Student> extends Pair<T> {}
2.当父类用具体类型代替类型变量时,具体变量必须是类型变量表示的范围内的一个元素
package generic;public class PariSon extends Pair<Person> {}
或
package generic;public class PariSon extends Pair<Student> {}
1 0
- Java泛型 继承中类型变量的关系
- java变量类型之间的转换关系
- Java继承关系的父子类中相同的成员变量
- Java继承关系的父子类中相同的成员变量
- 面向对象_继承中成员变量的关系
- Java中继承关系的实例分析
- Java 继承 父类变量, 方法 与子类的关系:
- java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
- java继承中,成员变量的覆盖
- java继承中,成员变量的覆盖
- java继承中,成员变量的覆盖
- java继承中,成员变量的覆盖
- JAVA继承中,成员变量的访问
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- JAVA的继承关系
- java中继承关系总结
- java中switch的变量类型
- JAVA中如何获取变量的类型
- KiB、MiB与KB、MB的区别
- Quartz2d
- mac下.gitconfig配置别名alias
- cocos2dx关卡选择界面设计
- Sqlite
- Java泛型 继承中类型变量的关系
- 转: 计算机的引导过程
- CMD 模块构建,从认识 Grunt 开始
- sqlite3-c-apis
- URL编码与两次encodeURI
- C# 中利用 Conditional 定义条件方法
- Oracle中REGEXP_SUBSTR函数
- NSDictionary全部API的学习。
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法