在Java中,接口本身不能直接实例化,因为接口定义了一组方法,但没有实现它们。要使用接口,您需要创建一个实现了该接口的类,然后实例化那个类。不过,Java 8引入了Lambda表达式和函数式接口,允许您以简洁的方式实现接口的部分或全部方法。
通过实现接口的类实例化
public interface RequestHandler {void onRequest(String receive, String toResponse);}public class RpcServer {private RequestHandler handler = new RequestHandler() {@Overridepublic 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() {@Overridepublic 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