无法创建接口实例而是创建对象

时间:2014-02-19 15:09:06

标签: java android

在java中,我们无法创建这样的接口实例:

iJack obj = new iJack();    //iJack is an interface

但是,我注意到我们可以这样做:

iJack obj;

两者有什么区别?

除此之外,我注意到你可以在一个界面中嵌套一个类,这有什么用?我想不出这个的实际目的。以下是我所谈论的一个例子:

public interface iJack {
    public abstract class Jack_class {

    }
}

2 个答案:

答案 0 :(得分:0)

无法实例化接口。只有课程才能。但是,您可以(并且应该)使用接口作为变量的类型。

你的行......

iJack obj;

...声明了iJack类型的变量,但它没有初始化它。

顺便说一句,您应该始终在界面名称的开头使用大写字母。

答案 1 :(得分:0)

如果定义类型为接口的引用变量,则分配给它的任何对象都必须是实现接口的类的实例。

你问这两个有什么区别。第一个是错的。您不能实例化接口,而是实现这些接口的类。所以你不能谈论差异

参考:Using an Interface as a Type

在接口中使用嵌套类与在另一个类中使用嵌套类具有相同的目的。这是将类定义为接口。

参考:Nested class inside an interface