Piensa la respuesta antes de abrirla. Todas las opciones parecen razonables, y casi siempre hay un detalle que lo cambia todo.
Pregunta Java · Serialización
¿Cuál es el resultado de ejecutar la clase Prueba?
public class Padre {
public Padre() {
System.out.println("Padre");
}
}import java.io.Serializable;
public class Hijo extends Padre implements Serializable {
public Hijo() {
System.out.println("Hijo");
}
}import java.io.*;
public class Prueba {
public static void main(String... args) throws Exception {
Hijo a = new Hijo();
ObjectOutputStream save = new ObjectOutputStream(new FileOutputStream("archivo.txt"));
save.writeObject(a);
save.flush();
System.out.println("-");
ObjectInputStream restore = new ObjectInputStream(new FileInputStream("archivo.txt"));
Hijo b = (Hijo) restore.readObject();
}
}- Padre Hijo – Padre Hijo
- Padre Hijo – Padre
- Padre – Hijo
- Error en tiempo de ejecución
Ver la respuesta
Respuesta: b.
java PruebaPadre Hijo - Padre
Al crear el objeto se ejecutan los dos constructores: Padre y Hijo. Al deserializarlo no se llama al constructor de la clase serializable, porque su estado se recupera del archivo. Pero Padre no es Serializable, así que su parte no se guardó, y Java la reconstruye llamando a su constructor sin parámetros. Por eso sale Padre una vez más, y Hijo no.
De ahí una regla poco conocida: si una clase serializable hereda de una que no lo es, esa clase padre tiene que tener un constructor sin parámetros accesible. Si no lo tiene, la deserialización falla con InvalidClassException.
Más preguntas de Java
- El orden de un HashSet
- wait() sin el monitor correcto
- start() con un argumento
- Dos hilos y una variable compartida
- wait() fuera de synchronized
- Leer más allá del final de un archivo
- binarySearch con null
- Clases internas anidadas
- Llamar a run() en vez de start()
- Un assert que nunca falla
- HashSet sin equals ni hashCode
- Campos transient al serializar
Pregunta publicada en 2014 y revisada en octubre de 2026. La respuesta se comprobó compilando y ejecutando el código con Java 25 LTS en un contenedor limpio; las salidas están copiadas de esa ejecución.
Padre-Hijo-Padre
Padre-Hijo-Padre
Hola necesito un programa q calcule rfc de una persoona como puedo hacer el codigo por favor :3
http://es.wikipedia.org/wiki/Registro_Federal_de_Causantes_(M%C3%A9xico)
Padre-Hijo-Padre
El RFC Solo es un algoritmo El cual es facilmente reproducible si sabes primero de donde sale el RFC
LOS PUBLIC CLASS NO VAN DEBAJO DE LA CLASE