Реализовать интерфейс с использованием абстрактного класса в Java

Опубликовано: 30 Ноября, 2021

Интерфейс содержит только абстрактные методы, экземпляры которых невозможно создать, и он объявляется с помощью ключевого слова interface . Класс, объявленный с ключевым словом abstract, известен в Java как абстрактный класс. Это класс, который обычно содержит по крайней мере один абстрактный метод, который не может быть создан, и также возможно, что класс вообще не имеет методов. Экземпляр абстрактного класса не может быть создан.

Теперь, когда все методы в интерфейсе являются абстрактными методами, мы можем реализовать его с помощью абстрактного класса.

1. Давайте сначала создадим интерфейс:

Ява

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

Здесь три нереализованных метода - это абстрактные методы.

2. Теперь давайте реализуем интерфейс в абстрактном классе с именем Student:

Ява

// 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" );
}
}

Здесь мы переопределили два абстрактных метода интерфейса GFG.

3. Теперь давайте создадим класс GEEK, который расширяет абстрактный класс Student:

Как упоминалось ранее, мы не можем создать экземпляр нашего абстрактного класса, поэтому нам нужно создать неабстрактный класс.

Ява

// 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" );
}
}

Здесь мы переопределили оставшийся метод интерфейса GFG.

Ниже представлена общая реализация постановки задачи:

Ява

// 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();
}
}

Выход:

 Давайте сделаем кодирование привычкой с GFG
Освоим все основы java с помощью GFG
Теперь давайте поможем другим, внося свой вклад в GFG

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .