为了账号安全,请及时绑定邮箱和手机立即绑定

Java 泛型笔试问题?

Java 泛型笔试问题?

慕少森 2019-02-20 16:52:20
代码: public class Pair<T> { private T t1; private T t2; public T getT1() { return t1; } public void setT1(T t1) { this.t1 = t1; } public T getT2() { return t2; } public void setT2(T t2) { this.t2 = t2; } } public class User { private String name; private String sex; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } public class Twins extends Pair<User> { @Override public void setT1(User t1) { if (t1 != null) { super.setT1(t1); } } @Override public void setT2(User t2) { if (t2 != null) { super.setT2(t2); } } } 问题描述:虚拟机会将 Pair进行类型擦除,擦出后类型变量将替换为 Object,那么 Twins 类重写的方法 void setT1(User t1)及 void setT2(User t2)中参数会擦出为 Object吗?为什么?
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

父类Pair进行类型擦除,擦出后类型变量将替换为Object,子类 Twins 类重写的方法 void setT1(User t2)及 void setT2(User t2)不会被擦出为Object,但这样参数列表变了,不是重写了,所以子类Twins自动生成了两个方法setT1(java.lang.Object)和setT2(java.lang.Object)方法重写父类两个方法,在里面调用void setT1(User t2)及 void setT2(User t2)这两个方法,所以子类Twins是有四个方法.

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 531 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号