метод наследования не работает из родительского класса - PullRequest
0 голосов
/ 08 мая 2011

Мне было интересно, почему мой дочерний класс не наследуется правильно.

, если у меня было ...

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
}

мойeclipse продолжает возвращать "Синтаксическая ошибка на токене" printMessage ", Идентификатор, ожидаемый после этого токена"

Может кто-нибудь помочь?Спасибо!Есть ли другие способы вызова методов из родительского класса, а также из дочернего класса?спасибо большое!

Ответы [ 2 ]

3 голосов
/ 08 мая 2011

Это потому, что вы не можете поместить произвольный код в тело класса:

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 внутри одного из его собственных подклассов?

0 голосов
/ 08 мая 2011

Это потому, что этот метод объявлен как статический.Я могу ошибаться, и я уверен, что кто-то прокомментирует, если я, но я думаю, вы можете сделать:

...