你能用Java实例化一个接口吗?
我知道快速回答是"不".但是有一点我不太了解.
这里发生了什么:
SharedPreferences是一个公共接口:
http://developer.android.com/reference/android/content/SharedPreferences.html
但是我们没有使用这个界面,正如我在书中所读到的那样,我们不创建类并实现SharedPreferences.\
相反,我们使用这样的API:
SharedPreferences pref = Context.getSharedPreferences("some value", 0);
http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String,%20int)
Run Code Online (Sandbox Code Playgroud)
那么这段代码到底发生了什么?
我认为它像getSharedPreferences()正在创建一个我们可以使用和操作的SharedPreferences对象.
但SharedPreferences是一个接口......我被告知你必须实现接口而不是创建它们的对象.
这是什么在Java?
非常感谢所有指针
(我还在努力学习)
跟进问题.
当我查看Java API时,我看到一个定义为Public Interface的类.我如何知道何时实现该接口或何时从中创建此类对象?
你永远不能在java中实例化一个接口.但是,您可以通过接口类型引用实现接口的对象.
所以发生的事情是getSharedPreferences返回一个实现该接口的对象.返回对象的类型并不重要.重要的是它实现了该接口的所有方法,因此它可以用作SharedPreferences
SharedPreferences pref = Context.getSharedPreferences("some value", 0);
Run Code Online (Sandbox Code Playgroud)
在此代码中,对象的类型是 SharedPreferences,但实例是实现 SharedPreferences 接口的类,这是 OOP 的基本概念
| 归档时间: |
|
| 查看次数: |
21377 次 |
| 最近记录: |