【发布时间】:2015-06-08 03:24:27
【问题描述】:
我想找到 java.net.ServerSocket accept() 方法的内容(因为我试图覆盖它,所以它返回不同的类型)。这在 Eclipse 中是否可行,或者在 Java 中是否可行?
谢谢。
【问题讨论】:
我想找到 java.net.ServerSocket accept() 方法的内容(因为我试图覆盖它,所以它返回不同的类型)。这在 Eclipse 中是否可行,或者在 Java 中是否可行?
谢谢。
【问题讨论】:
不,这在 Java 中是不可能的。因为,您无法修改您覆盖的函数的返回类型。 Java Tutorials Overriding and Hiding Methods 说(部分)
子类中具有相同签名(名称,加上其参数的编号和类型)和返回类型的实例方法作为超类中的实例方法会覆盖超类的方法。 p>
我建议您使用@Override annotation 来保护自己免受您打算覆盖的overloading 的酸味。
【讨论】:
accept() 方法的返回类型更改为extends java.net.Socket 的类,并在方法前添加了@Override 注释。 Eclipse 没有抛出任何错误,这是否意味着被覆盖的方法可以返回一个扩展原始返回类型的类?