Java java.lang.AbstractMethodError
Dieser Artikel hilft Ihnen, den java.lang.AbstractMethodError
zu verstehen und wie Sie ihn in Java lösen können.
Beheben Sie den Fehler java.lang.AbstractMethodError
in Java
Manchmal kann es vorkommen, dass unser Programm zur Laufzeit AbstractMethodError
erfährt. Das Finden der Ursache des Problems kann einige Zeit dauern, wenn wir mit diesem Fehler nicht vertraut sind.
In dieser Lektion untersuchen wir AbstractMethodError
genauer. Wir erfahren, was ein AbstractMethodError
ist und wann einer auftreten kann.
Wenn ein Programm versucht, eine nicht implementierte abstrakte Methode zu erfinden, wird der Fehler AbstractMethodError
ausgegeben. Wir wissen, dass der Compiler einen Fehler auslöst, wenn abstrakte Prozesse nicht implementiert sind; Die Anwendung wird daher nicht erstellt.
Wir konstruieren ein AbstractMethodError
-Beispiel mit dem Befehlszeilen-Javac-Compiler. Dieser Fehler wird generiert, wenn die Klassen unabhängig kompiliert werden, was die meisten IDEs verbieten.
Erstellen Sie aus dem folgenden Quellcode eine Java-Klasse namens Abstract
:
Code (Abstract.java
):
public class Abstract {
public void hello() {
System.out.println("Hello! I belong to abstract class");
}
}
Befolgen Sie diese Anweisungen in der Befehlszeile, um diese Klasse zu kompilieren:
javac Abstract.java
Erstellen Sie die zweite Klasse mit dem Namen AbstractClass
mit dem folgenden Quellcode, nachdem die erste Klasse kompiliert wurde:
Code (AbstractClass.java
):
public class AbstractClass extends Abstract {
public static void main(String[] args) {
AbstractClass newabs = new AbstractClass();
newabs.hello();
}
}
Dies würde sich aus dem Zusammenbau und der Ausführung wie folgt ergeben:
javac AbstractClass.java
java AbstractClass
Ausgang:
Hello! I belong to abstract class
Obwohl alles in Ordnung ist, was würde passieren, wenn wir die Funktion hello()
in abstract ändern und dann Abstract
neu kompilieren, ohne AbstractClass
zu ändern? Probieren Sie es aus, indem Sie den Abstract
wie folgt ändern:
public abstract class Abstract {
public abstract void hello();
}
Wir können diese Klasse jetzt einfach neu kompilieren; Wenn wir jedoch die AbstractClass
ausführen, erhalten wir Folgendes:
Exception in thread "main" java.lang.AbstractMethodError: AbstractClass.hello()V
at AbstractClass.main(AbstractClass.java:6)
Angenommen, eine Basisklassenmethode wird in eine abstrakte geändert, wodurch die Basisklasse geändert wird und die erforderlichen Änderungen nicht in der untergeordneten Klasse vorgenommen werden. In diesem Fall tritt AbstractMethodError
auf (d. h. Überschreiben der abstrakten Methoden).
Der Programmierer verwendet also, genau wie im obigen Beispiel, eine abstrakte, nicht implementierte Methode (ohne sich ihrer Abstraktheit bewusst zu sein). Da nur die Basisklasse geändert und kompiliert wird, ist er sich dieses Problems nicht bewusst.
In dieser Situation ist lediglich die Implementierung der Methode Abstract
in der AbstractClass
erforderlich. Das Problem AbstractMethodError
würde dadurch behoben.
public class AbstractClass extends Abstract {
public static void main(String[] args) {
AbstractClass newabs = new AbstractClass();
newabs.hello();
}
@Override
public void hello() {
System.out.println("Hello! I belong to abstract class");
}
}
Ausgang:
Hello! I belong to abstract class
Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.
LinkedInVerwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse