我想从java.net.URL继承,但我不能,因为它是最终的。我得到错误:
cannot inherit from final java.net.URL
为什么是最终的?
为什么String 是最终状态的问题的一些答案,JVM 依赖 String 因为它是一种非常基本的数据类型。我看不出这将如何应用于 URL 类型。
更新
许多答案和评论都给出了理由,为什么避免继承是一种好习惯。有些人甚至认为一切都应该是最终的。但实际情况有所不同。JDK 中的大多数类都不是最终类。良好的实践是不应从 java.net.URL 继承的一个原因。这甚至可能适用于 JDK 的任何类。但是当某些东西被定义为 final 时,就不能继承了。这仅适用于一些极少数的类,如 String 或 URL。
所以 URL 和所有其他非 final 类之间一定有一些不同。问题是:这个 URL 是最终的,有什么区别?
说我不应该关心这个问题,因为无论如何我都不应该继承,这不是问题的答案。