Predecir la salida del siguiente programa Java
// filename Main.java class Grandparent { public void Print() { System.out.println("Grandparent's Print()"); } } class Parent extends Grandparent { public void Print() { System.out.println("Parent's Print()"); } } class Child extends Parent { public void Print() { super.super.Print(); System.out.println("Child's Print()"); } } public class Main { public static void main(String[] args) { Child c = new Child(); c.Print(); } }
(A) Error del compilador en super.super.Print()
(B)
Grandparent's Print() Parent's Print() Child's Print()
(C) Error de tiempo de ejecución
Respuesta: (A)
Explicación: En Java, no está permitido hacer super.super. Solo podemos acceder a los miembros de Grandparent usando Parent. Por ejemplo, el siguiente programa funciona bien.
// Guess the output // filename Main.java class Grandparent { public void Print() { System.out.println("Grandparent's Print()"); } } class Parent extends Grandparent { public void Print() { super.Print(); System.out.println("Parent's Print()"); } } class Child extends Parent { public void Print() { super.Print(); System.out.println("Child's Print()"); } } class Main { public static void main(String[] args) { Child c = new Child(); c.Print(); } }
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