gpt4 book ai didi

java - 为 Java 中类的每个实例重写方法

转载 作者:行者123 更新时间:2023-11-30 02:29:13 25 4
gpt4 key购买 nike

我创建了一个类 Action 和一个类 Person,因此每个 Person 都可以执行许多操作。我希望 Action 类的每个实例都有不同版本的 Action.Execute 方法。我怎样才能在 Java 中做到这一点?

public class Action
{

public String Identifier;
public String[] Identifiers;

public Action(String Inpt)
{
this.Identifier = Inpt;
}

public void Execute()
{
System.out.println("Template Empty");
}
}

我希望能够做这样的事情(我知道这没有意义,但我希望你能理解这个想法):

public class Main
{
public static void main(String[] args)
{
Action a = new Action("X");
a
{
public void Execute()
{
//do something diferent
}
}

Action b = new Action("J");
b
{
public void Execute()
{
//do something ELSE
}
}

}

}

最佳答案

您可以使用方法覆盖 method overriding javadoc概念如下:-

 public abstract class Action {

public String Identifier;
public String[] Identifiers;

public Action(String Inpt) {
this.Identifier = Inpt;
}

protected abstract void Execute();
}

class HumanAction extends Action {

public HumanAction(String Inpt) {
super(Inpt);
}

@Override
public void Execute() {
System.out.println("human action");
}
}

class AnimalAction extends Action {
public AnimalAction(String Inpt) {
super(Inpt);
}

@Override
public void Execute() {
System.out.println("animal action");
}
}

现在在你的测试类中:-

    public class ActionTest {
public static void main(String[] args) {
HumanAction hu = new HumanAction("X");
hu.Execute();

AnimalAction animal = new AnimalAction("X");
animal.Execute();


}
}

其中的 O/p 如下:-

human actionanimal action

编辑:-添加了带有可运行代码的正确示例。

关于java - 为 Java 中类的每个实例重写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44690435/

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