gpt4 book ai didi

java - 只有直接子类必须实现方法

转载 作者:行者123 更新时间:2023-12-01 17:05:39 25 4
gpt4 key购买 nike

假设我正在编写一个动物园模拟器(在处理继承时我最喜欢的例子)。我有一个将军Animal类(class)。然后我有两个类(class) extend AnimalBird另一个叫 LandAnimalBird 的所有子类将以同样的方式移动(我不打算在我的动物园里养鸵鸟!),LandAnimal 也同样如此。 。因此,我做了一个move() Animal中的方法类(class)。但鸟类和陆地动物的移动方式如此不同,因此我不想在方法中添加任何内容。所以我标记了abstract忽略了 Bird 的所有子类这一事实将不得不实现它。即使代码只是这样,这对我来说似乎不太好

@Override
public void move()
{
super.move();
}

在每个文件中都包含它仍然感觉不对。

主要问题是:有没有办法让我只直接子类实现一个方法(Bird必须,但Sparrow extends Bird类没有)?

编辑:我忽略了与我的模拟器相关的一些内容。我宁愿没有 3 个不同的列表来迭代并调用 move()在他们。我想要一个ArrayList<Animal>我可以用它来更新和绘图。

最佳答案

如果您实现move() Bird中的方法和Sparrow不必更改它,那么您不必在 Sparrow 中实现它,它将按原样继承而无需重新实现它以仅调用 super.move(); 。这就是继承的整个思想:在子类中,您可以重用父类(super class)中的代码,并且仅在行为与父类不同的情况下添加或重写方法。

关于java - 只有直接子类必须实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com