在JAVA编程语言中,JAVA接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。那JAVA接口怎么接收集合参数?下面来我们就来给大家讲解一下。
Java接口作为参数传递的两种方式实现
方式一:
预先准备待使用类TestClassApackage com.jufanshare;
public class TestClassA { public interface SysMsgCallBack { public void call(); }; public void sysMsg(String msg, SysMsgCallBack callBack) { System.out.println("msg:\t" + msg); callBack.call(); } }
调用类,启动类ApplicationMainpackage com.jufanshare;
public class ApplicationMain { public static void main(String[] args) { TestClassA testClassA = new TestClassA(); testClassA.sysMsg("这是输出的信息", new TestClassA.SysMsgCallBack() { @Override public void call() { System.out.println("SysMsgCallBack执行"); } }); } }
解释:
这里我们把接口SysMsgCallBack预先定义好,在sysMsg()方法中定义接收一个接口SysMsgCallBack参数,然后再调用接口中的call()方法。
启动类ApplicationMain中直接new一个SysMsgCallBack接口,new接口会直接实现为内部类,在内部类中call定义要执行的逻辑代码,sysMsg()中即可执行这里定义的代码。
这种接口作为参数传递的方式在Android开发中很常见,JavaWeb中用得比较少。
应用场景举例:
发起网络请求(异步),异步请求结果出来之后,要根据请求结果做出逻辑处理,可以使用此方式。
方式二:
预先定义一个接口
package com.jufanshare; public interface CallBack { public void call(); }
分别两个类实现此接口
package com.jufanshare; public class ClassA implements CallBack { @Override public void call() { System.out.println("这里是执行的ClassA"); } } package com.jufanshare; public class ClassB implements CallBack { @Override public void call() { System.out.println("这里是执行的ClassB"); } }
接收接口参数的方法类
package com.jufanshare; public class ClassTest { public void doClass(CallBack callBack) { callBack.call(); } }
测试启动类package com.jufanshare;
public class Main { public static void main(String[] args) { ClassTest classTest = new ClassTest(); classTest.doClass(new ClassA()); classTest.doClass(new ClassB()); } }
Java接口怎么标记?
最常用的继承接口是没有包含任何方法的接口。
标记接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。
例如:java.awt.event 包中的 MouseListener 接口继承的 java.util.EventListener 接口定义如下:
package java.util; public interface EventListener {}
没有任何方法的接口被称为标记接口。标记接口主要用于以下两种目的:
1.建立一个公共的父接口:
正如EventListener接口,这是由几十个其他接口扩展的Java API,你可以使用一个标记接口来建立一组接口的父接口。例如:当一个接口继承了EventListener接口,Java虚拟机(JVM)就知道该接口将要被用于一个事件的代理方案。
2.向一个类添加数据类型:
这种情况是标记接口最初的目的,实现标记接口的类不需要定义任何接口方法(因为标记接口根本就没有方法),但是该类通过多态性变成一个接口类型。
Java接口作用就是简单形象的说就是给某个对象打个标,使对象拥有某个或某些特权。最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。
推荐阅读: