Why B()
when initializing part of class A using overrides method print()
defined in class B?
Expected output:
A
4
Real output:
0
4
public class Test
{
public static void main(String[] args)
{
new B();
}
}
class A
{
public A()
{
print();
}
public void print()
{
System.out.println("A");
}
}
class B extends A
{
int a = 4;
public B()
{
print();
}
@Override
public void print()
{
System.out.println(a);
}
}