如果我用 Java 写下这一行:
JOptionPane.showInputDialog(null, "Write something");
将调用哪个方法?
showInputDialog(Component parent, Object message)
showInputDialog(Object message, Object initialSelectionValue)
我可以测试一下。但在其他类似的情况下,我想知道会发生什么。
The 最具体的方法将被调用 - 在这种情况下
showInputDialog(Component parent, Object message)
这通常属于“确定方法签名” http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2规范 (15.12.2) 中重载决策的步骤,特别是“选择最具体的方法” http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5.
在不深入细节的情况下(您可以在规范中阅读这些细节),简介给出了很好的总结:
如果多个成员方法同时存在
可访问并适用于方法
调用时,需要选择
一个提供描述符
运行时方法调度。爪哇
编程语言使用规则
认为最具体的方法是
选择的。
非正式的直觉是,
方法比另一种方法更具体
如果第一个处理了任何调用
方法可以传递给其他人
没有编译时类型错误的一种。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)