我们如何在java中创建接口对象?

这段代码怎么工作我完全不解……

package com.servletpack.examples; interface check { public void message(); } public class Interface { public static void main(String[] args) { try { check t = new check() {//how???????????????? public void message() { System.out.println("Method defined in the interface"); } }; t.message(); } catch (Exception ex) { System.out.println("" + ex.getMessage()); } } } 

使用该语法,您可以创建一个完全合法的匿名类 。

在内部,匿名类被编译为它们自己的类,称为EnclosingClass$n ,其中封闭类的名称在$符号之前。 每增加一个匿名类, n增加。 这意味着正在创建以下类:

 class Interface$1 implements check { public void message() { System.out.println("Method defined in the interface"); } } 

然后, main编译的代码在内部使用新定义的匿名类:

 check t = new Interface$1(); t.message(); 

您正在创建实现接口检查的匿名类的实例(动态)。

这是匿名课程。 您的支票类是一个界面。 匿名类动态定义给定接口的实现。 因此,它可以帮助您避免为Interface的实现创建单独的类。 只有当您知道在代码中的任何其他位置永远不需要此实现时,此方法才有用。

希望这个解释有帮助!!

您的接口引用可以包含实现类的对象。 您正在实现一个匿名类并将其分配给接口的引用,这在JAVA中是绝对合法的。