Java java.lang.AbstractMethodError
Este artículo lo ayudará a comprender el java.lang.AbstractMethodError
y cómo resolverlo en Java.
Solucione el error java.lang.AbstractMethodError
en Java
A veces, nuestro programa puede experimentar AbstractMethodError
en tiempo de ejecución. Encontrar la raíz del problema podría llevar algún tiempo si no estamos familiarizados con este error.
En esta lección, examinaremos AbstractMethodError
con más detalle. Aprenderemos qué es un AbstractMethodError
y cuándo podría ocurrir.
Cuando un programa intenta inventar un método abstracto que no ha sido implementado, se lanza el error AbstractMethodError
. Sabemos que el compilador generará un error si no se implementan procesos abstractos; la aplicación no se creará como resultado.
Construiremos un ejemplo de AbstractMethodError
utilizando el compilador javac de línea de comandos. Este error se genera cuando las clases se compilan de forma independiente, lo que la mayoría de los IDE prohíben.
Cree una clase de Java llamada Abstract
a partir del código fuente a continuación:
Código (Resumen.java
):
public class Abstract {
public void hello() {
System.out.println("Hello! I belong to abstract class");
}
}
Siga estas instrucciones en la línea de comando para compilar esta clase:
javac Abstract.java
Cree la segunda clase, llamada AbstractClass
, utilizando el siguiente código fuente una vez compilada la primera clase:
Código (AbstractClass.java
):
public class AbstractClass extends Abstract {
public static void main(String[] args) {
AbstractClass newabs = new AbstractClass();
newabs.hello();
}
}
Esto resultaría de ensamblar y ejecutar de la siguiente manera:
javac AbstractClass.java
java AbstractClass
Producción :
Hello! I belong to abstract class
Aunque todo está bien, ¿qué pasaría si cambiamos la función hola()
para que sea abstracta y luego volvemos a compilar Abstract
sin modificar AbstractClass
? Pruébelo cambiando el Resumen
a algo como esto:
public abstract class Abstract {
public abstract void hello();
}
Ahora podemos recompilar fácilmente esta clase; sin embargo, cuando ejecutamos la AbstractClass
, obtenemos lo siguiente:
Exception in thread "main" java.lang.AbstractMethodError: AbstractClass.hello()V
at AbstractClass.main(AbstractClass.java:6)
Supongamos que un método de clase base se cambia para que sea abstracto, modificando la clase base como resultado, y las modificaciones necesarias no se realizan en la clase secundaria. En ese caso, ocurrirá AbstractMethodError
(es decir, anulando los métodos abstractos).
Así, al igual que en el ejemplo anterior, el programador utiliza un método abstracto, no implementado (sin ser consciente de su abstracción). Dado que solo se modifica y compila la clase base, no tiene conocimiento de este problema.
La implementación del método Abstract
en AbstractClass
es todo lo que se requiere en esta situación. El problema AbstractMethodError
se resolvería haciendo esto.
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");
}
}
Producción :
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.
LinkedInArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase