有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android Java我们不能实例化界面什么是游标

我在java中找到了一个关于接口的信息,它说我们不能创建它的实例

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

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

同时:public interface Cursor extends Closeable

所以我可以创建一个接口的实例


共 (2) 个答案

  1. # 1 楼答案

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

    静态类型允许您指定正在使用的对象为游标类型。这将锁定允许您使用它执行的操作。对象的动态类型是实际类型,必须是实现接口类型的类才能兼容

  2. # 2 楼答案

    不,这样做并不是在创建实例。创建实例需要使用new关键字(或者使用反射,但这超出了问题的范围)。在db.rawQuery内部的某个地方,他们正在创建一个类的实例,该类implements游标。实现接口需要实现它声明的所有方法(见图),这意味着您可以将该对象视为“游标类”的实例,并将其返回给需要Cursor的人。他们从不直接创建该接口的实例