繁体   English   中英

如何在Java中使用接口作为类型?

[英]How can I use an interface as type in java?

我创建了一个名为Leen的接口,并创建了一个实现该接口的类X,但是当我进入主类来创建一个名为x的变量时,就像这样

Leen x;
x.printname();

编译器给我错误:

Connect.java:10: error: variable x might not have been initialized

没有实现,就不能使用接口。 实现可以是实现您的接口的具体类或抽象类。 根据您的代码,显然没有接口实现。 我也不确定您在哪里使用变量p 请提供您的整个课程,以便我们为您提供帮助。

假设如果您想在不实例化的情况下访问变量,则可以使该变量在类中为静态。 App是您的类名,而xyz是您的界面。

class App implements xyz{
    public static int x;
    public static void printme(){
        //Your code goes here...
    }

}

现在你可以从你的主类访问它了

App app= null;
app.x= 6;
app.printme();

如前所述,这是因为您声明了变量但从未实例化它,这意味着它尚不存在,它只是声明中定义的类型的占位符,您需要做的是

Leen x; // declare the variable
x = new implementationClass(); // instantiate the variable

x.PrintName(); // then you functions

现在,由于使用了接口,因此接口上的所有功能都可用,但是代码将尝试使用实现形式,无论实现接口并实例化的任何类

为什么这很聪明? 好吧,如果您喜欢List<Leen>那么列表中的所有元素都可以使用Leen上的函数,而与创建Leen实现无关

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM