Ключевое слово this
в классе всегда будет ссылаться на объект.
Я написал несколько примеров классов для лучшего понимания.
Родительский класс
public class TestClass{
public void func(){
this.cFunc();
System.out.println("In Parent");
}
public void cFunc(){
System.out.println("cFunc in parent");
}
}
Дочерний класс
public class TestClassChild extends TestClass{
public void cFunc(){
System.out.println("cFunc in child");
}
}
Случаи
1) Дочерний объект, доступ к которому осуществляется с использованием ссылки на дочерний класс
TestClassChild tc = new TestClassChild();
tc.func();
Выходные данные
cFunc in child - Child method is called
In Parent
2) Доступ к дочернему объекту осуществляется по ссылке родительского класса
TestClass t = new TestClassChild();
t.func();
Выход
cFunc in child - Irrespective if it was referenced by parent still child method got called.
In Parent
3) Доступ к родительскому объекту осуществляется по ссылке родительского класса
TestClass tp = new TestClass();
tp.func();
Выход
cFunc in parent - Parent function got called.
In Parent
Надеюсь, что приведенные ниже примеры прояснят вам ситуацию.