Salida del programa Java | Conjunto 18 (anulación)

Requisito previo: invalidación en Java

1) ¿Cuál es la salida del siguiente programa?

class Derived 
{
    protected final void getDetails()
    {
        System.out.println("Derived class");
    }
}
  
public class Test extends Derived
{
    protected final void getDetails()
    {
        System.out.println("Test class");
    }
    public static void main(String[] args)
    {
        Derived obj = new Derived();
        obj.getDetails();
    }
}

a) Clase derivada
b) Clase de prueba
c) Error de tiempo de ejecución
d) Error de compilación

Respuesta (d)
Explicación: Los métodos final y estático no se pueden anular. Para obtener más detalles, consulte: ¿Podemos sobrecargar o anular métodos estáticos en Java?

2) ¿Cuál es la salida del siguiente programa?

class Derived 
{
    public void getDetails(String temp)
    {
        System.out.println("Derived class " + temp);
    }
}
  
public class Test extends Derived
{
    public int getDetails(String temp)
    {
        System.out.println("Test class " + temp);
        return 0;
    }
    public static void main(String[] args)
    {
        Test obj = new Test();
        obj.getDetails("GFG");
    }
}

a) Clase derivada GFG
b) Clase de prueba GFG
c) Error de compilación
d) Error de tiempo de ejecución

Respuesta (c)
Explicación: el método de anulación debe tener la misma firma, que incluye la lista de argumentos y el tipo de devolución. Para obtener más información, consulte: Anulación en Java

3) ¿Cuál es la salida del siguiente programa?

class Derived 
{
    public void getDetails()
    {
        System.out.println("Derived class");
    }
}
  
public class Test extends Derived
{
    protected void getDetails()
    {
        System.out.println("Test class");
    }
    public static void main(String[] args)
    {
        Derived obj = new Test();  // line xyz
        obj.getDetails();
    }
}

a) Clase de prueba
b) Error de compilación debido a la línea xyz
c) Clase derivada
d) Error de compilación debido al modificador de acceso

Respuesta: (d)
Explicación: el método de anulación no puede tener un modificador de acceso más restrictivo.

4) ¿Cuál es la salida del siguiente programa?

import java.io.IOException;
  
class Derived 
{
    public void getDetails() throws IOException //line 23
    {
        System.out.println("Derived class");
    }
}
  
public class Test extends Derived
{
    public void getDetails() throws Exception //line 24
    {
        System.out.println("Test class");
    }
    public static void main(String[] args) throws IOException //line 25
    {
        Derived obj = new Test();
        obj.getDetails();
    }
}

a) Error de compilación debido a la línea 23
b) Error de compilación debido a la línea 24
c) Error de compilación debido a la línea 25
d) Todo lo anterior

Respuesta (b)
Explicación: la excepción lanzada por el método de anulación no debe ser una excepción marcada nueva o más amplia. En el código anterior, Exception es una clase más amplia de excepción comprobada que IOException, por lo que esto genera un error de compilación.

5) ¿Cuál es la salida del siguiente programa?

class Derived 
{
    public void getDetails()
    {
        System.out.printf("Derived class ");
    }
}
  
public class Test extends Derived
{
    public void getDetails()
    {
        System.out.printf("Test class ");
        super.getDetails();
    }
    public static void main(String[] args)
    {
        Derived obj = new Test();
        obj.getDetails();
    }
}

a) Clase de prueba Clase derivada
b) Clase derivada Clase de prueba
c) Error de compilación
d) Error de tiempo de ejecución

Respuesta (a)
Explicación: la palabra clave super se usa para invocar explícitamente el método anulado desde una clase secundaria.

Este artículo es una contribución de Mayank Kumar . 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *