Java: chamando um super método que chama um método substituído
public class SuperClass
{
public void method1()
{
System.out.println("superclass method1");
this.method2();
}
public void method2()
{
System.out.println("superclass method2");
}
}
public class SubClass extends SuperClass
{
@Override
public void method1()
{
System.out.println("subclass method1");
super.method1();
}
@Override
public void method2()
{
System.out.println("subclass method2");
}
}
public class Demo
{
public static void main(String[] args)
{
SubClass mSubClass = new SubClass();
mSubClass.method1();
}
}
minha saída esperada:
subclasse method1
superclasse method1
superclasse method2
saída real:
subclasse method1
superclasse method1
subclasse method2
Eu sei que tecnicamente substituí um método público, mas achei que, como estava chamando o super, todas as chamadas dentro do super permaneceriam no super, isso não está acontecendo. Alguma idéia de como eu posso fazer isso acontecer?