我们如何在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中是绝对合法的。