阅读下列说明、图和Java代码,回答问题。 [说明] 已知四个类之间的关系如图13-3所示,分别对每个类的方法进行编号,例如,Shape的perimeter( )为1号,表示为“1:perimeter( )”,Rectangle类的

admin2012-04-11  30

问题 阅读下列说明、图和Java代码,回答问题。
   [说明]
   已知四个类之间的关系如图13-3所示,分别对每个类的方法进行编号,例如,Shape的perimeter(    )为1号,表示为“1:perimeter(    )”,Rectangle类的perimeter(    )为2号,表示为“2:perimeter(    )”,以此类推,其中,每个类的perimeter方法签名相同。

  [Java代码]
   Triangle tr=new Triangle(    );
   Square sq=new Square(    );
   Shape  sh=tr;

下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)?

选项

答案②⑤

解析 根据题中代码可知,tr引用一个Triangle对象,sq引用一个Square对象,sh和tr引用同一个Triangle对象。所以问题1中①⑤正确,由于sh和tr引用同一个对象,其引用的内存空间也必然相同,②③④错误。对于问题2中的消息,tr引用Triangle对象,所以tr.height(    )调用Triangle类的height方法;sq引用Square对象,但Square没有height方法,所以sq.height(    )没有对应任何方法调用,但Square类有perimeter方法,所以sq.perimeter(    )调用Square类的perimeter方法,其他几项同上。问题3中,赋值运算的左边应该是右边的父类或同一类型才可以正确赋值。所以正确的是②⑤
转载请注明原文地址:https://kaotiyun.com/show/wEVZ777K
0

最新回复(0)