簡體   English   中英

為什么String類擴展了Object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM