小编use*_*449的帖子

继承,超级()的NullPointerException概念

基类:

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,我不知道.

这里的基本概念是什么?

java inheritance

0
推荐指数
1
解决办法
353
查看次数

标签 统计

inheritance ×1

java ×1