Android Java我们不能实例化界面什么是游标
我在java中找到了一个关于接口的信息,它说我们不能创建它的实例
但我目前正在实施SQLite,我发现:
Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME,null);
同时:public interface Cursor extends Closeable
所以我可以创建一个接口的实例
你可以在下面搜索框中键入要查询的问题!
我在java中找到了一个关于接口的信息,它说我们不能创建它的实例
但我目前正在实施SQLite,我发现:
Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME,null);
同时:public interface Cursor extends Closeable
所以我可以创建一个接口的实例
# 1 楼答案
在允许多态性的语言中,例如Java,您在“=”前面左侧看到的类型称为静态类型,右侧称为动态类型
静态类型允许您指定正在使用的对象为游标类型。这将锁定允许您使用它执行的操作。对象的动态类型是实际类型,必须是实现接口类型的类才能兼容
# 2 楼答案
不,这样做并不是在创建实例。创建实例需要使用
new
关键字(或者使用反射,但这超出了问题的范围)。在db.rawQuery
内部的某个地方,他们正在创建一个类的实例,该类implements
游标。实现接口需要实现它声明的所有方法(见图),这意味着您可以将该对象视为“游标类”的实例,并将其返回给需要Cursor
的人。他们从不直接创建该接口的实例