接口中是否可以有静态方法?
1.这里是我在其他类中调用时,自动引入了一个静态方法我点开看到报错,说静态方法在接口中需要一个body 方法体。我的第一反应是接口中的方法不是抽象的吗? 怎么可以有方法体?这是编辑报错,说明这个地方可以有方法体,于是乎,我感觉这个地方肯定是有说法的,于是就百度了一下,果然,还真是:
1) 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错),所以不能含有静态代码块以及静态方法(用 static 修饰的方法)
2) 在jdk1.8中,接口里可以有静态方法,接口里的有静态方法 必须要有body。有静态方法不需要实现。
package com.javaeasy.communication;
import java.net.SocketAddress;
public interface Messenger {
public void setMessageHandler( MessageHandler handler);
public static void sendData(byte[] data, SocketAddress addr);
public void startMessenger();
}
我这里是 把static去掉了,因为不需要有静态方法