Полиморфизм Java / справка по абстрактным классам - PullRequest
1 голос
/ 07 января 2010

Я пытаюсь установить параметры для абстрактного класса:

public abstract class NewMath {
    public abstract int op (int intOne, int intTwo);
}

Вот расширенный подкласс:

public class MultMath extends NewMath {
    public int op (int intOne, int intTwo){
        return intOne + intTwo;
    }
}

Но когда я пытаюсь создать экземпляр объекта при определении таких параметров, как это:

public class TestNewMath {
    public static void main(String [] _args) {
        MultMath multObj = new MultMath(3,5);
    }
}

Это не работает. Это дает мне эту ошибку:

TestNewMath.java:3: cannot find symbol
symbol  : constructor AddMath(int,int)
location: class AddMath
        AddMath addObj = new AddMath(3, 5);

Я знаю, что что-то упустил. Что это?

Ответы [ 2 ]

6 голосов
/ 07 января 2010

Вы вызываете конструктор с двумя аргументами типа int, но вы не создали такого конструктора. Вы только создали метод с именем 'op', который принимает два аргумента int.

1 голос
/ 07 января 2010

Вы бы поместили конструктор в класс "MultMath", например, так:

public MultMath(int arg0, int arg1){

}

Это избавит вас от ошибки компиляции.В качестве альтернативы, вы можете сделать это:

public class TestNewMath {
  public static void main(String [] _args) {
    MultMath multObj = new MultMath();
     int x=1, y=2;
     multObj.op(x,y);        

}
...