Base Class:
public class Base {
    private String baseMessage = "Hello!";
    public Base() {
        printMessage();
    }
    public void printMessage() {
        System.out.println(baseMessage.toString());
    }
}
Derived Class:
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();
    }
}
When I run
new Base();
I get the expected output:
Hello!
When I Run
new Derived();
I get
Hello!
Hello!
then NullPointerException. This seems a bit weird to me. I don't know why it's printing it out then throwing a nullpointerexception, rather straight up throwing it. Maybe it's Eclipse, I don't know.
What's the underlying concept here?
 
     
    