SharedPreferences中的抽象方法

时间:2013-10-24 17:07:42

标签: android sharedpreferences

我正在阅读android

的文档
  

http://developer.android.com/reference/android/content/SharedPreferences.html

几乎所有公共方法都被声明为抽象:例如;

public abstract boolean getBoolean (String key, boolean defValue)
public abstract Map<String, ?> getAll ()
public abstract float getFloat (String key, float defValue

我的问题是,我们在app / activities中调用了这样的共享首选项。

SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(this);

我们永远不会将它扩展为强制使用抽象方法。它是如何工作的?

2 个答案:

答案 0 :(得分:1)

您已使用PreferenceManager初始化您的SharedPreferences,因此它是在您实例化共享首选项之前实现这些方法的子类

答案 1 :(得分:1)

如果仔细查看文档,可以看到SharedPreference是public interface。这不是一个阶级。 Android不希望您看到实现此接口的基础类,这就是为什么他们有getSharedPreferences()getDefaultSharedPreferences()等工厂方法为您提供的方法。

编辑:值得注意的是Context.getSharedPreferences()是一个抽象方法,然后在Activity.getSharedPreferences()等子类中实现。

相关问题