如果准备给一个方法的参数传递一个数值,你可能希望该方法的参数的类型是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类不需要做任何修改。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程