Java 代码中的静态绑定还是动态绑定?
这段代码代表什么样的绑定(静态或动态)?我也希望了解其中的原因 如果有多个Java 代码中的静态绑定还是动态绑定?,java,binding,Java,Binding,这段代码代表什么样的绑定(静态或动态)?我也希望了解其中的原因 如果有多个可显示项,请创建一个显示方法的接口 您的不愉快实现了接口。所以 class A { public void display() { System.out.println("in A"); } public static void invoke(A x) { x.display(); } } 您的invoke方法是 interface Dis
可显示项
,请创建一个显示方法的接口
您的不愉快实现了接口。所以
class A
{
public void display()
{
System.out.println("in A");
}
public static void invoke(A x)
{
x.display();
}
}
您的invoke方法是
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");}
}
您已经创建了一个类的对象,并在
invoke()
方法下调用了方法display()
。编译器将能够在编译时解析此绑定。因此,这是一个静态绑定
至于动态绑定(后期绑定),您需要有一个不明确的类型对象,该对象在运行时由时间决定。由于上面的方法运行编译期间确定的所有内容,所以它是静态绑定
public static void invoke(Displayable x) {x.display();}