子类中的访问方法

时间:2015-01-12 05:35:05

标签: java

我使用过代码:

//change size of raven
birdsByKey.get(instructions[0]).SizeRaven(newSize);

为了尝试改变乌鸦的大小。

如何使用以下方法(在课堂上#34; Raven")?

1 个答案:

答案 0 :(得分:2)

birdsByKey.get()将返回BirdBird没有changeRavenSize()方法(因为这是Raven独有的)。

您需要以下内容:

Bird b = birdsByKey.get(instructions[0]);
if (b instanceof Raven) {
    Raven r = (Raven)b;
    r.changeSizeRaven(newSize);
}

正如EJP所提到的,你真的想要changeSize() Bird Raven方法birdsByKey.get(instructions[0]).changeSize(newSize); 将覆盖。然后您的代码变为

{{1}}

每次添加新型鸟类时需要编辑的第一种方式。第二种方式只是添加尽可能多的鸟类,它只会继续工作......