![](/img/trans.png)
[英]Why does the List<? extends Foo> not accept an object of the Foo class?
[英]Why does String class extends Object
查看String
類聲明,可以看到它擴展了Object
類。
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
在實際不需要的地方顯式編寫extends Object
有什么意義?
他們背后的任何邏輯原因是什么?
它不在官方的oracle JDK源代碼中。 你在看哪個版本?
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence
無論哪種方式,無論您是否在源代碼中編寫了extends Object
都沒有區別。 但要注意,如果你不得不擴展另一個合法的類而不是Object
,那么你將會遇到死胡同,因為Java不支持多重繼承。
OP正在查看API文檔中的String聲明。 Java中的每個類都必須擴展Object。 但是,源代碼是否表示extends Object
是另一回事。
String
類在源代碼中沒有extends Object
。 但是,API聲明始終指示每個類都隱式擴展Object。
看看源代碼 。
我的猜測是你沒有安裝JDK源,但正在查看反編譯的類文件。
在我的源文件夾中,缺少extends Object
。 反編譯器總是會添加extends <superclass>
。 但是因為在Java中,每個類都是從Object派生的,所以在String類的情況下,這將成為extends Object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.