Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码中的静态绑定还是动态绑定?_Java_Binding - Fatal编程技术网

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();}