实例化接口和实现接口的区别
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 其他方法并调用其。
创建接口对象和实现接口有什么区别
示例:
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 其他方法并调用其。