我只是想知道为什么Java编译器决定是否可以基于“引用”类型而不是基于实际“对象”类型来调用方法?为了解释,我想举一个例子:
class A {
void methA() {
System.out.println("Method of Class A.");
}
}
class B extends A {
void methB() {
System.out.println("Method of Class B.");
}
public static void main(String arg[]) {
A ob = new B();
ob.methB(); // Compile Time Error
}
}
Run Code Online (Sandbox Code Playgroud)
尽管对象引用“ ob”包含一个由method组成的对象,但这将产生在该方法中methB()找不到的编译时错误。原因是Java Compiler检查的是(引用类型)中的方法,而不是(实际对象类型)中的方法。所以,我想知道背后的原因是什么。Java编译器为什么要在A类中查找方法,而为什么不在B类中(实际对象类型)查找呢?class Aclass BmethB()Class AClass B
我正在自动将文件夹和子文件夹从远程服务器复制到本地计算机,我知道将文件夹内所有文件复制的命令
mget *.extension
Run Code Online (Sandbox Code Playgroud)
但是我想知道psftp中是否有任何命令以递归方式将文件夹和子文件夹复制到我的本地计算机上。