gpt4 book ai didi

Java : Override not needed methods inside classes - Update

转载 作者:行者123 更新时间:2023-11-30 07:01:44 26 4
gpt4 key购买 nike

<分区>

在我的项目中,我有一个包含几个抽象方法的抽象类。现在多个其他类扩展了该抽象类。并不是所有的类都想重写抽象类的所有方法,因为那对它们没有用。我如何在对类无用的子类中提供这些方法的默认实现?示例-:

public abstract class Animal
{
public void Action()
{
.....
this.roar();
}

public abstract void roar();

public abstract void run();
}

上面是抽象类,它将具有子类将实现的抽象方法。

public class Lion extends Animal
{
@Override
public void roar()
{
s.o.p("Lion roars");
}

@Override
public void run()
{
s.o.p("Lion runs");
}
}

public class Deer extends Animal
{
@Override
public void roar()
{
// Question : What should I do here?
}

@Override
public void run()
{
s.o.p("Deer runs");
}
}

编辑-:

感谢您的建议,我理解拥有另一个类的想法,该类可以具有不常见的方法(在这种情况下为“咆哮”)。但是我的项目结构有点不同,它有点遗留代码,其中有许多子类从 Animal 类扩展。子类调用具体方法,具体方法又调用抽象方法(本例中为“roar”,请参阅更新后的 Animal 类,具体方法为“Action”)。现在按照你的建议,如果我创建另一个抽象类

public abstract RoaringAnimal extends Animal
{
public abstract void roar();
}

这将解决其中一个问题,因为我现在可以扩展 RoaringAnimal 而不是 Animal 而其他调用 Animal.Action 方法的类,它们不会在 Animal 中找到 roar() 的实现并且 javac 会提示。

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