Java接口 作为参数传递
Java接口作为参数传递的两种方式实现
方式一:
预先准备待使用类TestClassA
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 10:41
*/
public class TestClassA {
public interface SysMsgCallBack{
public void call();
};
public void sysMsg(String msg,SysMsgCallBack callBack){
System.out.println("msg:\t"+msg);
callBack.call();
}
}
12345678910111213141516
调用类,启动类ApplicationMain
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 10:34
*/
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执行");
}
});
}
}
123456789101112131415161718
方式二:
预先定义一个接口
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 11:05
*/
public interface CallBack {
public void call();
}
12345678910
分别两个类实现此接口
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 11:05
*/
public class ClassA implements CallBack {
@Override
public void call() {
System.out.println("这里是执行的ClassA");
}
}
12345678910111213
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 11:05
*/
public class ClassB implements CallBack {
@Override
public void call() {
System.out.println("这里是执行的ClassB");
}
}
12345678910111213
接收接口参数的方法类
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 11:07
*/
public class ClassTest {
public void doClass(CallBack callBack){
callBack.call();
}
}
123456789101112
测试启动类
package com.jufanshare;
/**
* @功能:
* @开发者: 大BUG
* @编写时间: 2019/4/8 11:06
*/
public class Main {
public static void main(String[] args) {
ClassTest classTest=new ClassTest();
classTest.doClass(new ClassA());
classTest.doClass(new ClassB());
}
}