gpt4 book ai didi

java - 在 Java 中,如何从重写类的实例调用重写类的方法

转载 作者:行者123 更新时间:2023-11-29 05:07:16 24 4
gpt4 key购买 nike

我是 Java 继承的新手。请查看我名为 Term 的父类的代码:

public class Term {

public String value;
public void setValue(String value)
{
this.value=value;
}

public String getValue()
{
return value;
}

}

现在类 OperatorTerm 扩展了 Term

public class OperatorTerm extends Term {

public static Operator type;

public static boolean equals(String value)
{
String regex="(\\++)|(-+)|\\*|/";
boolean isOperand=value.matches(regex);
return isOperand;
}

public void assignType(String value)
{
if(value.equals("+"))
type=Operator.ADD;
else if(value.equals("-"))
type=Operator.SUBTRACT;
else if(value.equals("*"))
type=Operator.MULTIPLY;
else if(value.equals("/"))
type=Operator.DIVIDE;
else if(value.equals("++"))
type=Operator.INCREMENT;
else
type=Operator.DECREMENT;
}
}

我正在另一个类中创建这样的 OperatorTerm 对象:

public static Term getTerm(String termValue)
{
Term newTerm=null;
if(ValueTerm.equals(termValue))
newTerm=new ValueTerm();
else if(ReferenceTerm.equals(termValue))
newTerm=new ReferenceTerm();
else if(OperatorTerm.equals(termValue))
{
newTerm=new OperatorTerm();
}
return newTerm;
}

在最后的 elseif 语句中,我想执行以下 newTerm.assignType。 assignType 是 OperatorTerm 类中的一个方法,但它不存在于 Term 类中。我无法这样做,我想知道是否有人可以指导我如何使用 newTerm 访问 OperatorTerm 类的方法

我正在使用

创建重写类的对象

最佳答案

    else if(OperatorTerm.equals(termValue))
{
OperatorTerm newOperatorTerm = new OperatorTerm();
newOperatorTerm.assignType(...);
newTerm = newOperatorTerm;
}

关于java - 在 Java 中,如何从重写类的实例调用重写类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934009/

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