我想知道为什么我的子类不能正确继承。

如果我有...

public class ArithmeticOp{

    //some constructor

    public static void printMessage(){
        System.out.println("hello");
    }

}


和另一类

public class AddOp extends ArithmeticOp{

    //some constructor

    ArithmeticOp op = new ArithmeticOp();
    op.printMessage();           //returns error
}


我的日食不断返回“令牌“ printMessage”上的语法错误,此令牌后应有标识符”

有人可以帮忙吗?谢谢!还有其他方法可以从父类以及子类中调用方法吗?谢谢一群!

最佳答案

这是因为您不能将任意代码放入类主体中:

public class AddOp extends ArithmeticOp{

    ArithmeticOp op = new ArithmeticOp(); // this is OK, it's a field declaration
    op.printMessage();                    // this is not OK, it's a statement
}


op.printMessage();必须位于方法内部或初始化程序块内部。

除此之外,您的代码感觉不对。为什么要在其自己的子类之一中实例化ArithmeticOp

10-07 23:44