Java 实例化接口和实现接口之间的区别
创建接口对象和实现接口有什么区别 例如:Java 实例化接口和实现接口之间的区别,java,interface,Java,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 {
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类的实例
public class B{
A a = new A(){
@override
public void testMethod(){ //implemtation here }
};
}
在这里创建命名实现,只创建类而不实例化它
public class B implements A
{
@override
public void testMethod(){}
}
无法创建接口的对象。接口它是一个抽象类,但所有的方法都是抽象的。在第一段代码中,您创建了一个实现接口A的匿名类(我建议您阅读java中的这个特性),在这种情况下,即使您在实现中定义了其他方法,您也无法调用接口的方法,但接口的方法是有限的。在第二段代码中,您正在创建一个实现接口a的类,这意味着您有一个至少包含接口a中定义的所有方法的类,您可以在类B中添加其他方法并调用它。实际上,您不能实例化接口。您正在创建一个实现它的匿名类。此外,您的匿名类(A)将引用它在其中创建的B,这可能会导致不可预见的副作用