class A
{
public void display()
{
System.out.println("in A");
}
public static void invoke(A x)
{
x.display();
}
}
此代码代表什么样的绑定(静态或动态)?我也很欣赏原因。
答案 0 :(得分:0)
如果您有多个displayables
,请创建一个声明显示方法的界面。
您的可显示实现界面。所以
interface Displayable {void display();}
class A implements Displayable {
public void display() {System.out.println("in A");}
}
class B implements Displayable {
public void display() {System.out.println("in B");}
}
您的调用方法是
public static void invoke(Displayable x) {x.display();}
答案 1 :(得分:0)
您已创建A类的对象,并在display()
方法下调用方法invoke()
。编译器能够在编译期间解析此绑定。因此,这是一个静态绑定。
对于动态绑定(后期绑定),您需要在运行时确定时间的模糊类型对象。由于上面的方法运行在编译期间确定的所有内容,因此这就是静态绑定的原因。