正在加载图片...
实验5-2:使用基于接口的多态 实验内容 编程实现 一个接口Food,两个类Apple、.Beef,分别都实现了接口Food中的方法doEat 其中Apple继承其父类Fruit,声明其属性为水果:Beef继承其父类Meat,声明其属性为肉 类。运行后效果如图5-23所示。 eop99j网 图523实验52运行结果 实验目的 通过这个简单的实例让读者进一步学习基于接口的多态,体会基于接口的多态要比基于 继承的多态灵活性更好。继承只能让超类引用指向与其属于同一类的对象:接口引用则能指 向任意类型的对象,即使对象间没有任何关系,只要这些对象所在的类实现了该接口即可。 实现思路 分别创建两个具体类:苹果类(Apple)和牛肉类(Beef),其中,苹果类(Apple)继再 自水果类(Fruit),而牛肉类(Beef)继承自肉类(Meat),但是这两个类均实现了食物(Food) 接口,并且实现了接口中食用的方法(doEat)。在主方法中用食物接口引用f指向了创建的 苹果对象,并且调用其食用的方法,接若用同样的引用「指向创建的牛肉对象,并且以同样 的方式调用了其食用的方法。 关键代码如下所示 abstract class Fruit 1n11 system.out-printin("") /片111111Lt111 class Beef extends Meat inplements Food public void doBat syatem.out.printin("): 14 14 实验内容 编程实现一个接口 Food,两个类 Apple、Beef,分别都实现了接口 Food 中的方法 doEat。 其中 Apple 继承其父类 Fruit,声明其属性为水果;Beef 继承其父类 Meat,声明其属性为肉 类。运行后效果如图 5-23 所示。 5-23 5-2 实验目的 通过这个简单的实例让读者进一步学习基于接口的多态,体会基于接口的多态要比基于 继承的多态灵活性更好。继承只能让超类引用指向与其属于同一类的对象;接口引用则能指 向任意类型的对象,即使对象间没有任何关系,只要这些对象所在的类实现了该接口即可。 实现思路 分别创建两个具体类:苹果类(Apple)和牛肉类(Beef),其中,苹果类(Apple)继承 自水果类(Fruit),而牛肉类(Beef)继承自肉类(Meat),但是这两个类均实现了食物(Food) 接口,并且实现了接口中食用的方法(doEat)。在主方法中用食物接口引用 f 指向了创建的 苹果对象,并且调用其食用的方法,接着用同样的引用 f 指向创建的牛肉对象,并且以同样 的方式调用了其食用的方法。 关键代码如下所示: int er fa ce F ood { // pu bl ic v oi d d oE at () ; } // abs tr ac t cl ass F ru it { } // abs tr ac t cl ass M ea t { } // cla ss A pp le ex te nd s Fr ui t i mp le me nt s Foo d { // pu bl ic v oi d d oE at () { System.out.println(" " ); } } // cla ss B ee f ext en ds M ea t imp le me nt s Fo od { // pu bl ic v oi d d oE at () { System.out.println(" " ); }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有