I'm using Java 7 and got 3 classes:
TestSuper.java
public abstract class TestSuper {
    public TestSuper() {
            testMethod();
    }
    protected abstract void testMethod();
}
TestNull.java
public class TestNull extends TestSuper {
    private String test = "Test";
    public TestNull() {
            super();
            System.out.println(test);
    }
    @Override
    protected void testMethod() {
            System.out.println(test);
    }
}
TestMain.java
public class TestMain {
    public static void main(String[] args) {
            new TestNull();
    }
}
Output:
null
Test
Why does this happen and is there a good workaround for it?
 
     
     
     
     
    