2010-01-06 4 views
1

Je suis en train de définir les paramètres d'une classe abstraite:Java polymorphisme/classe abstraite aide

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

Voici la sous-classe étendue:

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

Mais lorsque je tente d'instancier un tout objet définir les paramètres comme ceci:

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

Cela ne fonctionne pas. Il me donne cette erreur:

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

Je sais qu'il me manque quelque chose. Qu'Est-ce que c'est?

Répondre

6

Vous appelez un constructeur avec deux arguments int, mais vous n'avez pas créé un tel constructeur. Vous avez seulement créé une méthode nommée 'op' qui prend deux arguments int.

+0

Où dois-je mettre le constructeur? – Phil

+0

Un constructeur est une méthode sans type de retour et le nom de la classe. Dans ce cas public MultMath (int intOne, int intTwo) – Confusion

1

vous mettriez le constructeur dans la classe « MultMath », comme ceci:

public MultMath(int arg0, int arg1){ 

} 

Cela permettrait de se débarrasser de votre erreur de compilation. Vous pouvez également faire ceci:

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

}