查看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。
看一下源代码。