Я смотрел в Android источники, просто из интереса. Я обнаружил, что Context
является абстрактным классом с абстрактным методом:
public abstract Context getApplicationContext();
ContextWrapper.java
расширяет Context.java
, что привело к реализации метода getApplicationContext()
:
@Override
public Context getApplicationContext() {
return mBase.getApplicationContext();
}
Но mBase
ссылается на объект типа Context
, который инициализируется в конструкторе ContextWrapper
:
public ContextWrapper(Context base) {
mBase = base;
}
Итак, эта ссылка mBase
относится к классу abstract
?
Ну, я просто не понимаю, где код, который выполняется, когда вы вызываете getApplicationContext()
из вашего Activity
.