我想了解 为什么 Java 设计者选择以这种方式实现函数声明。我经常听到有人说 Java 的设计者希望避免在其他语言(例如 C++)中做出糟糕的设计选择——通过类的多重继承和运算符重载想到 - 为了保持面向对象的模型尽可能简单并鼓励良好的编程实践。在这种情况下是这样吗?此功能是否太昂贵而无法相对于它提供的(公认的边际) yield ?
问题是,我看不到(而且我还在学习,所以这可能意味着下蹲!:D)允许在函数声明中省略形式参数名称的重大实现开销。我至少可以想到一个该功能不会造成伤害的示例:定义抽象函数。
无论如何,很高兴听到人们对 SO 的一些想法。顺便说一句,the relevant section (8.4.1) Java 语言规范的一部分解释了什么,但没有讨论为什么。
编辑:添加代码片段:
abstract void someFunc(int, int, int);
(我正在使用一个抽象函数,因为这是一个简单的案例,我可以想到这个功能在什么地方会派上用场)。
请您参考如下方法:
为什么应该它允许这样做?
如果方法定义没有为其参数命名,您将如何在代码中实际使用这些参数?
在 C 中,情况略有不同:声明和实现是相互独立的(至少如果你做得“正确”)。在这里,将信息放在一个地方可以避免重复。
但在 Java 中没有单独的声明(除非您在接口(interface)中定义方法,在这种情况下没有实现,这意味着不再重复)。 只有实现。