从这些 OCA 练习题 (pdf)中的问题三:
abstract class Writer {
public static void write() {
System.out.println("Writing...");
}
}
class Author extends Writer {
public static void write() {
System.out.println("Writing book");
}
}
public class Programmer extends Writer {
public static void write() {
System.out.println("Writing code");
}
public static void main(String[] args) {
Writer w = new Programmer();
w.write();
}
}
输出是Writing...
。
我不明白为什么。作为Programmer
overridesWriter
的 write 方法,我认为它应该调用 inProgrammer
而不是 in的方法Writer
。
为什么?