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

标签 java inheritance

假设我正在编写一个动物园模拟器(在处理继承时我最喜欢的例子)。我有一个将军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/

相关文章:

java - 谷歌 Collection 中是否有不区分大小写的多图

java - 内部类究竟是如何访问外部类中的元素的?

c++ - 防止继承类覆盖基类的虚函数

Java 多级继承 - 一级类中 protected 实例变量

c++ - 在派生类中扩展枚举

java - 根据 Firebase 的最新日期将数据排序到 RecyclerView

java - n 的数字积的最小数

inheritance - 如何避免具有语义相同字段/属性的不同结构的代码重复?

java - Java 和 Eclipse 中的断言问题

Java:如何从其他程序中获取值?