Implement Interface using Abstract Class in Java - GeeksforGeeks

09 Feb, 2021
Interface contains only abstract methods that can’t be instantiated and it is declared by keyword interface. A class that is declared with the abstract keyword is known as an abstract class in Java. This is a class that usually contains at least one abstract method which can’t be instantiated and It is also possible for the class to have no methods at all. The instance of an abstract class can’t be created.
Now as all methods in an interface are abstract methods therefore we can implement it using Abstract Class.
1. Let’s create an Interface at first:
Java
// creating an interface named GFGinterface GFG {    void learnCoding();    void learnProgrammingLanguage();    void contribute();}
Here the three  non-implemented methods are the abstract methods
2. Now let’s implement the interface in an Abstract class named Student:
Java
// creating an abstract class named Student which is// implementing the interface,GFGabstract 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");    }}
Here we have overridden two abstract methods of the interface  GFG.
3. Now let’s create a class GEEK which extends the abstract class, Student:
As previously mentioned, we can’t create an instance of our abstract class therefore we need to make a non-abstract class.
Java
// creating an non-abstract class// GEEK which is extending Studentclass 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");    }}
Here we have overridden the remaining method of the interface GFG.
Below is the overall implementation of the problem statement:
Java
// Implemention of Interface using Abstract Class in Java  // Interface GFGinterface GFG {    void learnCoding();    void learnProgrammingLanguage();    void contribute();}  // Abstract class Student implementing from GFG interfaceabstract 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 classclass GEEK extends Student {    @Override public void contribute()    {        System.out.println(            "Now let's help others by contributing in GFG");    }}  // Driver codepublic 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();    }}
Output:
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
Java-Abstract Class and Interface
java-interfaces
Picked
Technical Scripter 2020
Java
Technical Scripter
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Constructors in Java
Exceptions in Java
Functional Interfaces in Java
Different ways of Reading a text file in Java
Generics in Java
Introduction to Java
Internal Working of HashMap in Java
Comparator Interface in Java with Examples
Strings in Java