Java:调用调用被覆盖方法的超级方法
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();
}
}
我的预期输出:
子类方法1
超类方法1
超类方法2
实际输出:
子类方法1
超类方法1
子类方法2
我知道从技术上讲,我已经覆盖了一个公共方法,但我认为,因为我在调用超级,超级内的任何调用都会留在超级中,这并没有发生。关于我如何实现它的任何想法?