- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么Java不支持静态方法的动态多态?如果答案是“不应在实例上调用静态方法,因此不需要在运行时解析方法调用”,那么进一步的问题是“为什么 Java 允许我在实例上调用静态方法?”。为什么它不通过给出一些编译时错误来简单地阻止用户直接调用实例上的方法。
换句话说,如果 Java 支持静态方法的运行时多态性,会出现什么问题?
最佳答案
Why does Java allow me to call static methods on instances?
你的假设是错误的。它从不调用类的实例。它总是呼吁上课。
试试下面的示例代码,你将永远不会得到 NullPointerException
class ABC {
public static void hello() {
System.out.println("Hello");
}
}
ABC abc = null;
abc.hello();
What would have gone wrong if Java would have supported Runtime Polymorphism for static methods?
Polymorphism当你override子类中的方法。由于静态方法属于类,因此没有覆盖静态方法的意义。因此,多态性始终仅适用于属于类实例的实例方法。
关于java - Java中静态方法不支持动态多态的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855056/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!