[英]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.