Implementar interfaz usando clase abstracta en Java

La interfaz contiene solo métodos abstractos que no se pueden instanciar y se declara mediante la interfaz de palabra clave . Una clase que se declara con la palabra clave abstracta se conoce como clase abstracta en Java. Esta es una clase que generalmente contiene al menos un método abstracto que no se puede instanciar y también es posible que la clase no tenga ningún método. No se puede crear la instancia de una clase abstracta.

Ahora, como todos los métodos en una interfaz son métodos abstractos, podemos implementarlos usando Abstract Class.

1. Primero creemos una interfaz:

Java

// creating an interface named GFG
interface GFG {
    void learnCoding();
    void learnProgrammingLanguage();
    void contribute();
}

Aquí los tres métodos no implementados son los métodos abstractos.

2. Ahora implementemos la interfaz en una clase Abstracta llamada Student:

Java

// creating an abstract class named Student which is
// implementing the interface,GFG
abstract class Student implements GFG {
    
    // Overriding two methods of the interfacem,GFG
    @Override public void learnCoding()
    {
        System.out.println(
            "Let's make coding a habit with GFG");
    }
    @Override public void learnProgrammingLanguage()
    {
        System.out.println(
            "Let's master all fundamentals of java with the help of GFG");
    }
}

Aquí hemos anulado dos métodos abstractos de la interfaz GFG.

3. Ahora vamos a crear una clase GEEK que amplíe la clase abstracta, Estudiante:

Como se mencionó anteriormente, no podemos crear una instancia de nuestra clase abstracta, por lo tanto, debemos crear una clase no abstracta.

Java

// creating an non-abstract class
// GEEK which is extending Student
class GEEK extends Student {
    
    // overriding the remaining method of the interface,GFG
    @Override public void contribute()
    {
        System.out.println(
            "Now let's help others by contributing in GFG");
    }
}

Aquí hemos anulado el método restante de la interfaz GFG.

A continuación se muestra la implementación general del enunciado del problema:

Java

// Implemention of Interface using Abstract Class in Java
  
// Interface GFG
interface GFG {
    void learnCoding();
    void learnProgrammingLanguage();
    void contribute();
}
  
// Abstract class Student implementing from GFG interface
abstract class Student implements GFG {
  
    // Overriding the methods
    @Override public void learnCoding()
    {
        System.out.println(
            "Let's make coding a habit with GFG");
    }
    @Override public void learnProgrammingLanguage()
    {
        System.out.println(
            "Let's master all fundamentals of java with the help of GFG");
    }
}
  
// Extend the GEEK class by Student abstract class
class GEEK extends Student {
    @Override public void contribute()
    {
        System.out.println(
            "Now let's help others by contributing in GFG");
    }
}
  
// Driver code
public class Main {
    public static void main(String[] args)
    {
        // New GEEK object is created
        GEEK gfgStudent = new GEEK();
  
        // Calls to the multiple functions
        gfgStudent.learnCoding();
        gfgStudent.learnProgrammingLanguage();
        gfgStudent.contribute();
    }
}

Producción:

Let's make coding a habit with GFG
Let's master all fundamentals of java with the help of GFG
Now let's help others by contributing in GFG

Publicación traducida automáticamente

Artículo escrito por the_dir_one 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 *