/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static class Base {
public Base() {
// dangerous virtual call
foo();
}
public void foo() {}
}
public static class Child extends Base {
private final int val;
public Child(int val) {
this.val = val;
}
@Override
public void foo() {
// val should always be initialized here. Or not?
System.
out.
println("Val is " + val
); }
}
{
Child c = new Child(25);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJcHVibGljIHN0YXRpYyBjbGFzcyBCYXNlIHsKCQkKCQlwdWJsaWMgQmFzZSgpIHsKCQkJLy8gZGFuZ2Vyb3VzIHZpcnR1YWwgY2FsbAoJCQlmb28oKTsKCQl9CgkJCgkJcHVibGljIHZvaWQgZm9vKCkge30KCQkKCX0KCQoJcHVibGljIHN0YXRpYyBjbGFzcyBDaGlsZCBleHRlbmRzIEJhc2UgewoJCQoJCXByaXZhdGUgZmluYWwgaW50IHZhbDsKCQkKCQlwdWJsaWMgQ2hpbGQoaW50IHZhbCkgewoJCQl0aGlzLnZhbCA9IHZhbDsKCQl9CgkJCgkJQE92ZXJyaWRlCgkJcHVibGljIHZvaWQgZm9vKCkgewoJCQkvLyB2YWwgc2hvdWxkIGFsd2F5cyBiZSBpbml0aWFsaXplZCBoZXJlLiBPciBub3Q/CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiVmFsIGlzICIgKyB2YWwpOwoJCX0KCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJQ2hpbGQgYyA9IG5ldyBDaGlsZCgyNSk7Cgl9Cn0=