Class Is Not Abstract and Does Not Override Error en Java
-
Pourquoi l’erreur
Class Is Not Abstract and Does Not Override Error
se produit-elle en Java ? -
Solution 1 : remplacer la méthode
canSpeak()
-
Solution 2 : Rendre
Baby
abstrait -
Solution 3 : Faites de
Human
une classe et étendez-la dans la classeBaby
Cet article trouvera des solutions à l’erreur Class Is Not Abstract and Does Not Override Error
qui se produit lorsque nous utilisons le concept d’abstraction en Java.
Pourquoi l’erreur Class Is Not Abstract and Does Not Override Error
se produit-elle en Java ?
Dans le code ci-dessous, nous avons deux classes et une interface. La classe JavaExample
a une méthode main()
sans aucune partie de corps. Nous créons une interface Human
avec une méthode abstract
canSpeak()
avec boolean
comme type de retour. Nous ne spécifions pas de corps pour canSpeak()
car une méthode abstract
n’a pas de corps.
Dans la deuxième classe, Baby
, nous héritons de l’interface Human
en utilisant le mot-clé implements
. Si nous utilisons un IDE, il y aura une erreur, et lorsque nous exécuterons le code, l’erreur se produira, comme indiqué dans la sortie.
Si nous regardons l’erreur Baby is not abstract and does not override abstract method canSpeak() in Human
, nous pouvons comprendre pourquoi elle s’est produite. Il dit que la classe Baby
n’est pas abstraite, et il ne remplace pas la méthode canSpeak()
de l’interface Human
.
Cette erreur apparaît car nous devons remplacer les méthodes abstraites pour définir le corps lors de l’implémentation de toute interface de classe avec des méthodes abstraites.
public class JavaExample {
public static void main(String[] args) {}
}
class Baby implements Human {}
interface Human {
abstract boolean canSpeak();
}
Production :
java: Baby is not abstract and does not override abstract method speak() in Human
Solution 1 : remplacer la méthode canSpeak()
Pour corriger l’erreur Baby is not abstract and does not override abstract method canSpeak() in Human
, la première solution consiste à remplacer la méthode abstract
canSpeak()
dans la classe Baby
qui implémente Human
. interface.
La fonction canSpeak()
renvoie false et dans la méthode main()
, nous créons un objet de la classe Baby
et appelons la fonction surchargée canSpeak()
. Dans la sortie, nous pouvons voir qu’il n’y a pas d’erreur et la valeur attendue s’affiche.
public class JavaExample {
public static void main(String[] args) {
Baby baby = new Baby();
System.out.println("Can Speak? " + baby.canSpeak());
}
}
class Baby implements Human {
@Override
public boolean canSpeak() {
return false;
}
}
interface Human {
abstract boolean canSpeak();
}
Production :
Can Speak? false
Solution 2 : Rendre Baby
abstrait
Une autre solution consiste à faire de la classe Baby
un abstract
. Nous avons le même code ici, mais Baby
est une classe abstract
. Elle ne peut pas être initialisée ; nous ne créons une instance de la classe Baby
que dans la méthode main()
.
public class JavaExample {
public static void main(String[] args) {
Baby baby;
}
}
abstract class Baby implements Human {}
interface Human {
abstract boolean canSpeak();
}
Solution 3 : Faites de Human
une classe et étendez-la dans la classe Baby
La dernière solution est différente. Au lieu d’implémenter une interface, nous pouvons transformer l’interface Human
en une classe et étendre cette classe dans la classe Baby
en utilisant le mot-clé extends
. Nous spécifions le corps de canSpeak()
dans la classe Human
elle-même, ce qui supprime l’erreur.
public class JavaExample {
public static void main(String[] args) {
Baby baby = new Baby();
System.out.println("Can Speak? " + baby.canSpeak());
}
}
class Baby extends Human {}
class Human {
boolean canSpeak() {
return false;
}
}
Production :
Can Speak? false
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArticle connexe - Java Error
- Correction de l'erreur Reach End of File While Parsing en Java
- Résoluxa0: Java Scanner NextLine Skips
- Correction de l'erreur NoSuchElementException en Java
- Correction du type d'erreur d'instruction de retour manquante en Java
- Correction de l'exception JavaFx dans la méthode de démarrage de l'application