【发布时间】:2015-06-21 04:18:23
【问题描述】:
我们知道静态绑定发生在私有、静态、最终和重载方法上,而动态绑定发生在重写方法上。 但是,如果我的方法只是公共的,它既不是静态的,也不是被覆盖和重载的怎么办。
public class Test{
public void print(){
System.out.println("hello!");
}
public static void main(String args[]){
Test t = new Test();
t.print();
}
}
谁能解释一下 print() 会发生什么绑定,因为它既没有重载也没有被覆盖。
【问题讨论】:
-
print是什么?方法必须始终具有返回类型。 -
请注意,重载的实例方法也是动态绑定的,就像任何其他实例方法一样。
-
注意,重载的实例方法也是动态绑定的……你能举例说明一下吗?
-
@user2068260 假设一个 Bar 类有两个实例方法 foo(int) 和 foo(String)。 SubBar 类可以覆盖这两个方法 foo(int) 和 foo(String)。当您调用 someObject.foo(int) 或 someObject.foo(String) 时,将执行的方法取决于 someObject 的实际具体类型,就像任何其他实例方法一样。它重载的事实并没有改变任何东西。
标签: java