java - 与构造函数同名的方法 - 为什么?

标签 java oop

为什么允许以下内容:

public class Foo {
  public Foo() { ... }
  public void Foo() { ... }
}

是否有正当理由将方法命名为与类相同?

最佳答案

我的猜测是它是允许的,因为明确禁止它会给 Java 的标识符命名规则增加另一个要求,而 yield 却很小。与 C++ 不同,Java 总是要求使用 new 关键字调用构造函数,因此对于标识符是指方法还是构造函数从来没有任何歧义。我确实同意与父类同名的方法乍一看会让人很困惑,几乎可以肯定地避免使用它。也就是说,我很高兴他们选择不通过禁止此类方法使语言进一步复杂化。

关于java - 与构造函数同名的方法 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401444/

相关文章:

java - 带有 Mockito 的 JUnitParams

javascript - 三.javascript中的JS + OOP,无法将3D JSON对象传递给其他类

PHP 依赖注入(inject) - 在构造函数中包含类名

java - 一个类有自己类型的字段可以吗

运行 Cucumber 功能时出现 java.lang.ClassNotFoundException : sun. Reflect.ConstantPool

java - 如何使用 antlrv3 生成的词法分析器和解析器提供语法高亮显示?

Java:实例泛型

java - 错误 : Syntax error on token(s), 结构错位

c++ - dynamic_cast 和多态性的最佳实践

.net - 在 .NET 中,当您传递一个类实例/接口(interface)作为参数时,您传递一个对象还是完整的 vtable