今天看一个javaweb的代码,感觉好奇怪啊,接口的方法竟然可以直接调用,有人知道这是怎么一回事么?...
今天看一个java web的代码,感觉好奇怪啊,接口的方法竟然可以直接调用,有人知道这是怎么一回事么?
有两点可能:
接口已经被实现了,直接找实现类就好了,调用接口方法实际上是调用的实现类的方法
List<String> list = new LinkedList<>();
list.add("aaa");//调用接口的add方法实际上是调用的LinkedList实现了的add方法
也有可能是用了Java8的新特性:默认方法
public interface HaveFun {
public default String defaultMethod() {
return "hello 这是默认方法";
}
public static void main(String[] args) {
HaveFun fun = new HaveFun() {
};
System.out.println(fun.defaultMethod());
}
}
但是,具体对象99.99%的情况由具体实现类new出来的,最终估计还是你没找着实现类