2

当引入新的 Java 时,Oracle 会发布 API 文档和有关如何使用它和遵循的规则的教程。但是它是否发布了任何关于以这种方式制作 API 背后的决定或想法或为什么要这样设计的文档。

例如,

  1. 为什么我们没有静态和受保护的外部类。

  2. 为什么我们不能在 Java 中扩展一个以上的类。

  3. 为什么子类重写方法不能抛出比超类方法更多的异常。

对于长期从事 Java 工作并通过经验了解这些背后的正当原因的人来说,这些可能是显而易见的。但是对于 Java 的新手或第一次使用它的人可能不会立即获得它。那么是否有 Oracle 发布的任何参考文档可以参考以了解这些规则背后的原因。

4

2 回答 2

0

不适用于现有规则,但适用于特定版本中的新增功能。当 java 发布新版本时,它发布的版本不是针对该版本的,关于示例中添加的所有增强和特性。

以下是包含所有新增功能和增强功能的 Java 7 发行说明的链接 - http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html

在此页面上,如果您单击任何功能,它将进入特定功能的详细信息。例如,在此页面上,如果您单击 - Java SE 7 中的多线程自定义类加载器,它将进入包含详细信息的页面,例如需要它的场景以及现在支持从中得出的内容 - http://docs.oracle.com/javase/7/docs/technotes/guides/lang/cl-mt.html

于 2013-10-02T05:59:20.253 回答
0

正如其他人回答的那样,没有这样的文档,但您可以在网上轻松找到答案(在 Java 发行说明、JSR、论坛......和这个网站上)。

关于您的确切问题:

  1. protected并且static本质上在类的范围内使用。
  2. 由于钻石问题,继承仅限于一类。interface是Java(以及其他如c#)的解决方案。
  3. 您不能通过覆盖对方法进行不兼容的更改。添加一个异常会破坏多态性的可能性。在这种情况下,调用此方法的代码应该知道正确处理异常的确切实现。
于 2013-10-02T06:32:00.443 回答