gpt4 book ai didi

java - 在 java 中用不同的参数覆盖的替代方法(这是不可能的)

转载 作者:行者123 更新时间:2023-11-30 05:57:13 24 4
gpt4 key购买 nike

您好,我遇到了一个设计问题,我认为这应该很常见:

public abstract class Parent
{
...

public boolean itsOk()
{
return true;
}
public void execute()
{
if (itsOk()){
System.out.println("done");
}
}
}

我需要能够在从“Parent”继承的任何子类中覆盖 itsOK() 函数,即使参数不同也是如此。

public class Example extends Parent
{
public boolean itsOK(int a)
{
if (a==1) return true;
else return false;
}

}

然后当我调用 execute 时,我希望调用子类的 itsOk() 方法。

public static void main(String[] args) {
Example e=new Example();
e.execute();
}

如果子类的 itsOk() 方法没有参数(如“父类方法”),这可以正常工作,所以这是一个压倒一切的情况,但是当参数不同时我该如何实现?

最佳答案

在子类的 itsOk 方法中调用 super.itsOk();

也就是说,我假设你的意思是你想在你的子类中定义一个 itsOk 的重载,它做一些新的事情,但也调用父类的默认实现 没问题

顺便说一句,请注意术语:您不是覆盖:要做到这一点,子类中的itsOk 必须与父类中的方法签名相同。相反,您正在重载创建一个恰好具有相同名称的全新方法。

关于java - 在 java 中用不同的参数覆盖的替代方法(这是不可能的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124197/

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