如果一个类实现了一个接口并有一个toString()
方法,并且我们将子引用存储到父变量中,或者只是完成了动态绑定,那么为什么编译器不检查toString()
接口中的方法,因为动态绑定的规则是检查函数的唯一性在父母
例如。
interface my {
void show();
}
class child implements my {
public void show() {
System.out.println("working");
}
public String toString() {
return "hello";
}
public static void main(String... s) {
my m = new child();
m.show();
String s = m.toString();
System.out.println(s);
}
}
我们知道,只要动态绑定完成,子个人方法就无法执行,除非它覆盖了上述方法,那么为什么toString()
要编译上述函数并给出输出呢?