我想从java.net.URL继承,但是它是final的,所以我无法这样做。我遇到了以下错误:
cannot inherit from final java.net.URL
为什么它是final的?
一些关于String is final状态的问题的答案表明,JVM依赖于String,因为它是一种非常基本的数据类型。我不明白这如何适用于URL类型。
更新
许多答案和评论都给出了避免继承的原因。有些人甚至认为所有东西都应该是final的。但现实情况却不同。JDK中的大多数类都不是final的。遵循良好的实践是一个原因,为什么一个人不应该从java.net.URL继承。这甚至可能适用于JDK中的任何类。但当某个东西被定义为final时,就不能继承。这仅适用于一些非常少的类,如String或URL。
因此,在URL和所有其他非final类之间必须有一些不同之处。问题是:是什么差异使得URL必须是final的?
说我不应该关心这个问题,因为我不应该继承,这不是问题的答案。