我只是出於興趣考慮Android sources。我發現的是,Context
是一個抽象類的抽象方法:調用getApplicationContext()時調用的代碼在哪裏?
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
類? 嗯,我只是不明白你從Activity
撥打getApplicationContext()
時執行的代碼在哪裏。
你理解類是如何抽象的工作?有一些具體的類可以擴展Context,這就是實現方法的地方。 –
我對它的感興趣,我理解抽象類是如何工作的。 – Eugene