如果准备给一个方法的参数传递一个数值,你可能希望该方法的参数的类型是double类型,这样一来就可以向该参数传递byte、int、long、float和double类型的数据。


如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法


例如:

interface SpeakHello {
    void speakHello();
}
class Chinese implements SpeakHello {
    public void speakHello() {
        System.out.println("中国人习惯问候语:你好,吃饭了吗? ");
    }
}
class English implements SpeakHello {
    public void speakHello() {
        System.out.println("英国人习惯问候语:你好,天气不错!");
    }
}
class KindHello {
    public void lookHello(SpeakHello hello) { //接口类型参数
        hello.speakHello(); //接口回调
    }
}
public class Main {
    public static void main(String args[]) {
        KindHello kindHello = new KindHello();
        kindHello.lookHello(new Chinese());
        kindHello.lookHello(new English());
    }
}


运行结果如下:

中国人习惯问候语:你好,吃饭了吗?
英国人习惯问候语:你好,天气不错!


注意:如果源文件再增加若干个类似Chinese和English的类,KindHello类不需要做任何修改。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)