Salida del programa Java | Conjunto 25 (Polimorfismo)

Prerrequisito: Polimorfismo en java

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

class GFG
{
    protected void getData()
    {
        System.out.println("Inside GFG");
    }
}
class GeeksforGeeks extends GFG
{
    protected void getData()
    {
        System.out.println("Inside GeeksforGeeks");
    }
}
  
public class Test
{
    public static void main(String[] args)
    {
        GFG obj = new GeeksforGeeks();
        obj.getData();
    }
}

a) Inside GFG
b) Inside GeeksforGeeks
c) Error de compilación
d) Error de tiempo de ejecución

Respuesta (b)
Explicación: Se utiliza una variable de referencia de la clase GFG para apuntar a un objeto de la clase GeeksforGeeks. En el momento de la compilación, la JVM verifica si el método que se llama está definido en la clase GFG, pero en el tiempo de ejecución, la JVM invoca el método de la clase GeeksforGeeks porque el objeto es de la clase GeeksforGeeks. Consulte enlace estático frente a dinámico en Java para obtener más detalles.

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

class Test
{
    void myMethod()
    {
        System.out.println("GeeksforGeeks");
    }
}
public class Derived extends Test
{
    void myMethod()
    {
        System.out.println("GFG");
    }
      
    public static void main(String[] args)
    {
        Derived object = new Test();
        object.myMethod();
    }
}

a) GeeksforGeeks
b) GFG
c) Error de compilación
d) Error de ejecución

Respuesta (c)
Explicación: una clase secundaria no se puede utilizar como referencia a un objeto de superclase.

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

class GFG
{
    protected void getData()
    {
        System.out.println("Inside GFG");
    }
}
class GeeksforGeeks extends GFG
{
    protected void getData()
    {
        System.out.println("Inside GeeksforGeeks");
    }
      
    protected void getValue()
    {
        System.out.println("GeeksforGeeks");
    }
}
  
public class Test
{
    public static void main(String[] args)
    {
        GFG obj = new GeeksforGeeks();
        obj.getValue();
    }
}

a) Error de compilación
b) Error de tiempo de ejecución
c) GeeksforGeeks
d) Ninguno de estos

Respuesta (a)
Explicación: Se utiliza una variable de referencia GFG para almacenar el objeto GeeksforGeeks. En tiempo de compilación, JVM busca el método getValue en la clase GFG. Al detectar su ausencia, JVM arroja un error de tiempo de compilación. Consulte enlace estático frente a dinámico en Java para obtener más detalles.

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

interface GFG
{
    void myMethod();
    void getInfo();
}
  
abstract class Geeks implements GFG
{
    void getData()
    {
        System.out.println("GFG");
    }
}
  
public class Test extends Geeks
{
    public void myMethod()
    {
        System.out.println("GeeksforGeeks");
    }
    public void getInfo()
    {
        System.out.println("Geeks");
    }
      
    public static void main(String[] args)
    {
        Geeks obj = new Test();
        obj.getInfo();
    }
}

a) Geeks
b) Error de compilación
c) Error de tiempo de ejecución
d) Ninguno de estos

Respuesta (a)
Explicación: Class Geeks implementa la interfaz GFG. Entonces, todos los métodos declarados en la interfaz GFG se replican para la clase Geeks. Entonces, cuando se llama al método getInfo en la línea 1 del programa anterior, el compilador verifica si existe el método getInfo en la clase Geeks, ya que se usa una variable de tipo Geeks para hacer referencia al objeto Test.

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

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

a) Error de compilación
b) Error de tiempo de ejecución
c) GFG
d) GeeksforGeeks

Respuesta (a)
Explicación: una variable de referencia de clase secundaria no se puede utilizar para almacenar una instancia de clase principal.

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 *