首页 理论教育 Java接口回调实现多态Java语言程序设计

Java接口回调实现多态Java语言程序设计

时间:2023-10-18 理论教育 版权反馈
【摘要】:接口中也有上转型对象,即把接口的实现类对象赋值给接口的一个引用变量时,这个接口的引用变量就变成了这个实现类对象的一个上转型对象,只不过在接口中我们称为“接口的回调”。通过接口的回调也同样可以实现接口中的多态。USB接口的内容如下:该USB接口中第3、4行定义了turnOn和turn Off方法。

Java接口回调实现多态Java语言程序设计

在面向对象的设计思想中,所有的对象都是通过类来描绘的。但是反过来,并不是所有的类都是用来描绘对象的,如接口抽象类。因为接口和抽象类没有构造方法,故不能用其来实例化对象。前面讲过“继承中的上转型”,即把子类对象赋值给父类的一个引用变量时,这个父类的引用变量就变成了这个子类对象的一个上转型对象。利用上转型对象可以实现“继承中的多态”。接口中也有上转型对象,即把接口的实现类对象赋值给接口的一个引用变量时,这个接口的引用变量就变成了这个实现类对象的一个上转型对象,只不过在接口中我们称为“接口的回调”。通过接口的回调也同样可以实现接口中的多态。

【例4-9】 目前,我们使用的计算机上都有USB 接口,鼠标、键盘和麦克风都可以通过USB接口与计算机相连。我们来模拟一下计算机的启动和关闭。只有当鼠标、键盘和麦克风都启动成功后,计算机才算启动成功。只有当鼠标、键盘和麦克风都关闭后,计算机才算关闭成功。

从上述分析中,涉及的对象包括USB接口、鼠标、键盘、麦克风和计算机。鼠标、键盘和麦克风都通过USB和计算机相连,所以需要定义一个USB接口,而鼠标、键盘和麦克风是USB接口的实现类。USB接口的内容如下:

该USB接口中第3、4行定义了turnOn和turn Off方法。

鼠标类实现了USB接口,重写了USB接口中的turn On和turn Off方法,内容如下:

键盘类实现了USB接口,重写了USB接口中的turnOn和turnOff方法,内容如下:(www.xing528.com)

麦克风类实现了USB接口,重写了USB接口中的turn On和turn Off方法,内容如下:

由于鼠标、键盘、麦克风都是在计算机中使用的,所以需要编写计算机类,内容如下:

编写测试类,实例化计算机对象,并向计算机对象中添加USB设备,测试类内容如下:

上述代码的运行结果如下:

第7行代码,通过computer对象调用add USB 方法,并传入Mouse类的对象,但是从Computer类中第6行,我们可以看出,add USB 方法的参数是USB 接口的一个引用,当把一个接口实现类的对象赋值给一个接口引用时,该接口的引用就变成了这个对象的上转型对象,此处称为“接口的回调”。第7~9行代码,通过传入不同的实现类对象赋值给接口的引用变量。第11行代码,调用power On方法时,Computer类的第19行代码,通过接口的引用变量调用不同实现类中的turnOn方法,此处体现的就是“接口的多态”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈