您好我在java中找到了有关接口的信息,它说我们无法创建它的实例
但我目前正在实施SQLite,我发现了这个:
Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME,null);
同时:public interface Cursor extends Closeable
所以我能够创建一个接口实例吗?
答案 0 :(得分:4)
不,你不是通过这样做来创建一个实例。创建实例需要使用new
关键字(或使用反射,但这超出了问题的范围)。在db.rawQuery
内的某个地方,他们正在创建一个implements
Cursor类的实例。实现一个接口要求你拥有它声明实现的所有方法(如图所示),这意味着你可以将该对象看作是" Cursor类"的实例,并将其返回给期待的人Cursor
。他们没有直接创建该接口的实例。
答案 1 :(得分:1)
在允许多态性的语言中,例如Java,在“=”之前在左侧看到的类型称为静态类型,右侧称为动态类型。
静态类型允许您指定您使用的对象是Cursor类型。这将锁定您可以使用它执行的操作。对象的动态类型是实际类型,它必须是实现接口类型兼容的类。