Реализовать интерфейс с использованием абстрактного класса в Java
Интерфейс содержит только абстрактные методы, экземпляры которых невозможно создать, и он объявляется с помощью ключевого слова 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 и многому другому, см. Полный курс подготовки к собеседованию .