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

标签 java oop inheritance

我是 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/

相关文章:

java - Android Studio : activity_main. xml 和 content_main.xml 未显示设计预览 && ClassNotFoundException

oop - 同一模块中的子例程未找到模块中的 Fortran 函数

perl - Moose 角色中的方法名称冲突

vba - 如何通过 VBA 覆盖获得智能感知

c++ - 访问 Protocol Buffer 扩展字段

c++ - 是什么导致构造函数后出现这些 'unexpected tokens' 错误?

java - Java 中的倾斜或扭曲图像对象

java - 使用增强型 for 循环时的 IndexOutOfBoundsException

java - CompletableFuture 执行中出现意外的空值

java - 为什么 main 函数返回意外的执行结果?