Java接口作为参数传递

记录两种方式,原文链接:Java接口作为参数传递【用处很多】http://www.jufanshare.com/content/70.html

原文中解释比较详细,此处只有实现代码

方式一:

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();
    }
}
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执行");
            }
        });
    }
}

方式二:

package com.jufanshare;

/**
 * @功能:
 * @开发者: 大BUG
 * @编写时间: 2019/4/8 11:05
 */
public interface CallBack {
    public void call();
}
package com.jufanshare;

/**
 * @功能:
 * @开发者: 大BUG
 * @编写时间: 2019/4/8 11:05
 */
public class ClassA implements CallBack {
    @Override
    public void call() {
        System.out.println("这里是执行的ClassA");
    }
}
package com.jufanshare;

/**
 * @功能:
 * @开发者: 大BUG
 * @编写时间: 2019/4/8 11:05
 */
public class ClassB implements CallBack {
    @Override
    public void call() {
        System.out.println("这里是执行的ClassB");
    }
}
package com.jufanshare;

/**
 * @功能:
 * @开发者: 大BUG
 * @编写时间: 2019/4/8 11:07
 */
public class ClassTest {
    public void doClass(CallBack callBack){
        callBack.call();
    }
}
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());
    }
}

 

你可能感兴趣的:(Java)