Nivel de dificultad : Intermedio
Prediga la salida de los siguientes programas Java.
Programa 1:
class First { public First() { System.out.println("a"); } } class Second extends First { public Second() { System.out.println("b"); } } class Third extends Second { public Third() { System.out.println("c"); } } public class MainClass { public static void main(String[] args) { Third c = new Third(); } }
Producción:
a b c
Explicación:
Al crear un nuevo objeto de tipo ‘Tercero’, antes de llamar al constructor predeterminado de Tercera clase, el constructor predeterminado de superclase se llama, es decir, Segunda clase y luego nuevamente antes del constructor predeterminado de superclase, constructor predeterminado de Primera clase se llama. Y por lo tanto da tal salida.
Programa 2:
class First { int i = 10; public First(int j) { System.out.println(i); this.i = j * 10; } } class Second extends First { public Second(int j) { super(j); System.out.println(i); this.i = j * 20; } } public class MainClass { public static void main(String[] args) { Second n = new Second(20); System.out.println(n.i); } }
Producción:
10 200 400
Explicación:
Dado que en la clase ‘Segunda’ no tiene su propia ‘i’, la variable se hereda de la superclase. Además, se llama al constructor de padre cuando creamos un objeto de Segundo.
Programa 3:
import java.util.*; class I { public static void main (String[] args) { Object i = new ArrayList().iterator(); System.out.print((i instanceof List) + ", "); System.out.print((i instanceof Iterator) + ", "); System.out.print(i instanceof ListIterator); } }
Producción:
false, true, false
Explicación:
el método iterator() devuelve un iterador sobre los elementos de la lista en la secuencia adecuada, no devuelve un objeto List o ListIterator. Se puede obtener un ListIterator invocando el método listIterator.
Programa 4:
class ThreadEx extends Thread { public void run() { System.out.print("Hello..."); } public static void main(String args[]) { ThreadEx T1 = new ThreadEx(); T1.start(); T1.stop(); T1.start(); } }
Producción:
Run Time Exception
Explicación:
excepción en el subproceso «principal» java.lang.IllegalThreadStateException en java.lang.Thread.start El
subproceso no se puede iniciar dos veces.
Este artículo es una contribución de Pratik Agrawal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA