You're using the this
keyword which actually refers to the "currently running instance of the object you're using", that is, you're invoking this.method2();
on your superclass, that is, it will call the method2() on the object you're using, which is the SubClass.