Class Is Not Abstract and Does Not Override Error en Java
-
Pourquoi l’erreur
Class Is Not Abstract and Does Not Override Errorse produit-elle en Java ? -
Solution 1 : remplacer la méthode
canSpeak() -
Solution 2 : Rendre
Babyabstrait -
Solution 3 : Faites de
Humanune 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
