为什么可以使用这些抽象方法?

时间:2015-07-23 23:35:32

标签: java android oop

从此页面考虑此代码 Saving key - value sets

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

为什么可以在不提供实现的情况下使用putInt()方法,因为它是一个抽象方法? (见:SharedPreferences.Editor) 难道不应该这样做吗? 你能解释一下吗?感谢。

2 个答案:

答案 0 :(得分:5)

只要你有一个对象的实例,就没有抽象方法这样的东西。所有实例都是具体且完全定义的。在这里,您获得sharedPref.edit()返回的实例,因此您可以在其上调用putInt

答案 1 :(得分:2)

  

为什么在不提供实现的情况下使用putInt()方法是可能的,因为它是一个抽象方法?

editor是实现SharedPreferences.Editor接口的内部类的实例。最有可能的是,它是SharedPreferencesImpl.EditorImpl的一个实例。