实例化接口和实现接口的区别

difference between instantiation an interface or implementing an interface

创建接口对象和实现接口有什么区别

示例:

 public interface A{
    public void testMethod(); 

 }

正在创建接口对象

 public class B{
    A a = new A(){
    @override
    public void testMethod(){  //implemtation here }
     };
  }

另一种方式是

   public class B implements A
       {
       @override
       public void testMethod(){}
       }

你错了:

在这里你匿名实现了接口并且你已经有了annonymouse的实例class

 public class B{
    A a = new A(){
    @override
    public void testMethod(){  //implemtation here }
     };
  }

这里你创建命名实现,你只创建class而不实例化它。

 public class B implements A
       {
       @override
       public void testMethod(){}
       }

您不能创建接口对象。接口是抽象的 class 但所有方法都是抽象的。在第一个代码中,您正在创建一个实现接口 A 的匿名 class(我建议您阅读 java 中的此功能),在这种情况下,即使您定义了接口的方法,您也会受到限制您无法调用实现中的其他方法。在第二个代码中,您正在创建一个实现接口 A 的 class,这意味着您有一个 class,它至少包含接口 A 中定义的所有方法,您可以在 [=13] 中添加=] B 其他方法并调用其。