gpt4 book ai didi

java - 有没有办法在基类中使用重写函数? ( java 语)

转载 作者:行者123 更新时间:2023-12-01 19:31:59 29 4
gpt4 key购买 nike


我尝试在基类中实现一个函数,该函数使用子函数(defiend 作为基类中的抽象函数)。我认为一个例子可以最好地说明这个问题。

abstract class Animal{
public void doSomthing(){
this.sound();
}

protected abstract void sound();
}

class Dog extends Animal{
@Override
protected void sound(){
System.out.println("WAF");
}
}

现在,当我尝试在运行时获取元素时(通过工厂方法,如下所示:Animal 工厂方法("Dog);)并调用 doSomthing方法我得到了异常,因为它转到了抽象方法,我的问题是是否有任何方法可以绕过这个问题或另一个解决方案。

最佳答案

 class myMain
{
public static void main(String[]args)
{
Animal doggo = new Dog(); // create object for dog
doggo.animalSound(); // call the sound for dog

}
}
class Animal
{
public void animalSound()
{
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal
{
public void animalSound()
{
System.out.println("The Dog Says bow wow! ");
}
}

关于java - 有没有办法在基类中使用重写函数? ( java 语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59479684/

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