Android - Java - 我们无法实例化Inteface - Whats Cursor

时间:2016-09-28 20:18:02

标签: java android sqlite

您好我在java中找到了有关接口的信息,它说我们无法创建它的实例

但我目前正在实施SQLite,我发现了这个:

Cursor res =  db.rawQuery("SELECT * FROM " + TABLE_NAME,null); 

同时:public interface Cursor extends Closeable

所以我能够创建一个接口实例吗?

2 个答案:

答案 0 :(得分:4)

不,你不是通过这样做来创建一个实例。创建实例需要使用new关键字(或使用反射,但这超出了问题的范围)。在db.rawQuery内的某个地方,他们正在创建一个implements Cursor类的实例。实现一个接口要求你拥有它声明实现的所有方法(如图所示),这意味着你可以将该对象看作是" Cursor类"的实例,并将其返回给期待的人Cursor。他们没有直接创建该接口的实例。

答案 1 :(得分:1)

在允许多态性的语言中,例如Java,在“=”之前在左侧看到的类型称为静态类型,右侧称为动态类型。

静态类型允许您指定您使用的对象是Cursor类型。这将锁定您可以使用它执行的操作。对象的动态类型是实际类型,它必须是实现接口类型兼容的类。