我们可以在Java中创build一个接口的实例吗?
有没有可能在Java中创build一个接口的实例?
我已经读过使用内部匿名类的地方,我们可以这样做,如下所示:
interface Test { public void wish(); } class Main { public static void main(String[] args) { Test t=new Test() { public void wish() { System.out.println("output: hello how ru"); } }; t.wish(); } } cmd> javac Main.java cmd> java Main output: hello how ru
这里正确吗?
是的,你的例子是正确的。 匿名类可以实现接口,这是我唯一能想到的,你会看到一个实现一个接口,没有“实现”关键字的类。 在这里查看另一个代码示例:
interface ProgrammerInterview { public void read(); } class Website { ProgrammerInterview p = new ProgrammerInterview () { public void read() { System.out.println("interface ProgrammerInterview class implementer"); } }; }
这工作正常。 被采取从这页:
http://www.programmerinterview.com/index.php/java-questions/anonymous-class-interface/
你永远不能在java中实例化一个接口。 但是,您可以引用通过接口types实现接口的对象。 例如,
public interface A { } public class B implements A { } public static void main(String[] args) { A test = new B(); //A test = new A(); // wont compile }
你在上面做的是创build一个实现接口的匿名类。 您正在创build一个Anonymous对象,而不是types为interface Test
的对象。
通常,您可以创build一个接口的参考。 但是你不能创build一个接口的实例。
简短的回答…是的。 初始化variables时,可以使用匿名类。 看看这个
不,在我看来,你可以创build一个接口的引用variables,但不能像抽象类一样创build一个接口的实例。
是的,这是正确的。 你可以做一个内部类。
是的,我们可以这样做,“匿名类使您能够使代码更加简洁,它们使您能够同时声明和实例化一个类,它们就像本地类一样,只是它们没有名字” – >> Java Doc