想问下Java中,接口为什么可以直接调用抽象方法呢,不是没有方法体吗? 为什么下面的代码是正确的嘞?
麻烦老铁们了
public class test{
public static void useshow(ShowHandler showHandler){
showHandler.show();
}
}
interface ShowHandler{
public abstract void show();
}
想问下Java中,接口为什么可以直接调用抽象方法呢,不是没有方法体吗? 为什么下面的代码是正确的嘞?
麻烦老铁们了
public class test{
public static void useshow(ShowHandler showHandler){
showHandler.show();
}
}
interface ShowHandler{
public abstract void show();
}
首先,接口确实调用不了抽象方法,接口无法实例化,你这个方法未来被调用的话,需要传入的参数的是这个接口的实现类对象,而对实现类需要实现这个接口中声明的抽象方法,根据多态,执行的是实例实现的方法体。