phoenixdx
发贴: 5
积分: 0
|
于 2005-11-06 19:06
类继承关系如下: Pie类和Cake类都继承于Dessert类,ApplePie类继承于Pie类,ChololateCake类继承于Cake类.假设在某一段代码中包含下列三个重载方法: void order(Dessert d, Cake c); // 1 void order(Pie p, Dessert d);// 2 void order(ApplePie a, Cake c);//3 假如声明了一套变量,变量anApplerPie表示一个类型为ApplerPie的数值,变量aCholocateCake表示一个类型为CholocateCake的数值,等等.请问:order(anApplerPie,aCholocateCake)将调用哪个方法.麻烦详细讲解一下原因~~~ 以下是完整代码: public class Test { public static void main(String [] args){ ApplePie anApplePie = new ApplePie(); ChocolateCake aChocolateCake = new ChocolateCake(); new Test1().order(anApplePie, aChocolateCake); } } class Test1 { Test1(){} void order(Dessert d ,Cake c){} void order(Pie d ,Dessert c){} void order(ApplePie a, Cake c){} } class Dessert { Dessert(){} } class Pie extends Dessert { Pie(){} } class ApplePie extends Pie { ApplePie(){} } class Cake extends Dessert { Cake(){} } class ChocolateCake extends Cake { ChocolateCake(){} }
phoenixdx edited on 2005-11-06 21:20
|