i am newbie in java and i usually used c++ i just wondering this code works
public class ParentClass {
    public void methodA() {
        System.out.println("This is Parent A Method");
        whoAmI();
    }
    public void methodB() {
        System.out.println("This is Parent B Method and I am Calling Method A");
        whoAmI();
        methodA();
    }
}
public class ChildClass extends ParentClass{
    @Override
    public void methodA() {
        System.out.println("This is Child A Method and I am Calling Parents Method A");
        whoAmI();
        super.methodA();
    }
    @Override
    public void methodB() {
        System.out.println("This is Child B Method and I am Calling Parents Method B");
        whoAmI();
        super.methodB();
    }
}
ChildClass c = new ChildClass();
c.methodB();
and I expected output like this
This is Child B Method and I am Calling Parents Method B
This is Parent B Method and I am Calling Method A
This is Parent A Method
but was
This is Child B Method and I am Calling Parents Method B
This is Parent B Method and I am Calling Method A
This is Child A Method and I am Calling Parents Method A
This is Parent A Method
so i realized that in java all non-static methods are by default virtual functions like virtual keyword in c++.
is there any way to make output like this?
This is Child B Method and I am Calling Parents Method B
This is Parent B Method and I am Calling Method A
This is Parent A Method
 
     
     
     
    