在Java中,`class B extends A` 和 `class B extends A` 之间的区别是:

huangapple go评论72阅读模式
英文:

What is a difference in Java between class B<T> extends A<T> and class B<T> extends A

问题

什么是以下代码片段之间的区别:

// 1
class A&lt;T&gt;
class B&lt;T&gt; extends A

和

// 2
class A&lt;T&gt;
class B&lt;T&gt; extends A&lt;T&gt;

1与*原始类型*类似吗:

List list = new ArrayList<Integer>();

而2是首选形式吗
?
英文:

What is the difference between:

// 1
class A&lt;T&gt;
class B&lt;T&gt; extends A

and

// 2
class A&lt;T&gt;
class B&lt;T&gt; extends A&lt;T&gt;

Is 1 related to the Raw Types like:

List list = new ArrayList&lt;Integer&gt;();

whereas 2 is a preferred form
?

答案1

得分: 1

第一个代码片段扩展了原始类型。在 B 中无法确定类 A 中的类型 T 应该是什么。类 A 中的 T 和类 B 中的 T 是不相关的。

第二个代码片段扩展了 A<T>。所以类 A 中的 T 和类 B 中的 T 指代同一类型。

英文:

The first one extends the raw type. There is no way then in B to say what type T in class A should be. T in A and T in B are unrelated.

The second one extends A&lt;T&gt;. So T in A and T in B refer to the same type.

huangapple
  • 本文由 发表于 2020年5月30日 22:47:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/62104111.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定