在Java中,接口本身不能直接实例化,因为接口定义了一组方法,但没有实现它们。要使用接口,您需要创建一个实现了该接口的类,然后实例化那个类。不过,Java 8引入了Lambda表达式和函数式接口,允许您以简洁的方式实现接口的部分或全部方法。
通过实现接口的类实例化
public interface RequestHandler {
void onRequest(String receive, String toResponse);
}
public class RpcServer {
private RequestHandler handler = new RequestHandler() {
@Override
public void onRequest(String receive, String toResponse) {
System.out.println(receive);
System.out.println(toResponse);
}
};
public RequestHandler getHandler() {
return handler;
}
public void setHandler(RequestHandler handler) {
this.handler = handler;
}
public static void main(String[] args) {
RpcServer server = new RpcServer();
server.getHandler().onRequest("Hello World!", "Response from server");
}
}
使用匿名内部类实现接口
public interface Test1Interface {
int aa = 1;
void run();
}
public class Test1 {
private Test1Interface test1Interface = new Test1Interface() {
@Override
public void run() {
System.out.println("Running...");
}
};
public static void main(String[] args) {
Test1 test1 = new Test1();
test1.test1Interface.run();
}
}
使用Lambda表达式实现接口(Java 8及以后版本):
public interface ISay {
void sayHello();
}
public class Program {
public static void main(String[] args) {
ISay say = () -> System.out.println("Hello java!");
say.sayHello();
}
}
请注意,接口中定义的变量默认是`public static final`的,这意味着它们属于接口本身而不是接口的实例。您可以在实现接口的类中定义自己的变量和方法。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/114184.html