基类:
public class Base {
private String baseMessage = "Hello!";
public Base() {
printMessage();
}
public void printMessage() {
System.out.println(baseMessage.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
派生类:
public class Derived extends Base {
private String derivedMessage = "World!";
public Derived () {
super();
}
@Override
public void printMessage() {
super.printMessage();
System.out.println(derivedMessage.toString());
}
public static void main(String[] args) {
// new Base();
new Derived();
}
}
Run Code Online (Sandbox Code Playgroud)
我跑的时候
new Base();
Run Code Online (Sandbox Code Playgroud)
我得到了预期的输出:
Hello!
Run Code Online (Sandbox Code Playgroud)
当我跑
new Derived();
Run Code Online (Sandbox Code Playgroud)
我明白了
Hello!
Hello!
Run Code Online (Sandbox Code Playgroud)
然后是NullPointerException.这对我来说似乎有点奇怪.我不知道为什么它打印出来然后抛出一个nullpointerexception,而不是直接抛出它.也许是Eclipse,我不知道.
这里的基本概念是什么?