Разница между наследованием и интерфейсом в Java

Ключевая разница - наследование vs Интерфейс в Java
 

Java - это язык программирования, разработанный Sun Microsystems. Java может использоваться для разработки различных приложений. Это мультипарадигмальный язык, который поддерживает объектно-ориентированное, структурированное и т. Д. Основное преимущество Java состоит в том, что он поддерживает объектно-ориентированное программирование (ООП). Программист может создавать классы и объекты. В ООП четыре столпа. Это наследование, полиморфизм, абстракция и инкапсуляция. Наследование и интерфейсы связаны с ООП. ключевое отличие между наследованием и интерфейсом заключается в том, что наследование - это создание новых классов из существующих классов, а интерфейс - для реализации абстрактных классов и множественного наследования..

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое наследование в Java
3. Что такое интерфейс в Java
4. Сходства между наследованием и интерфейсом в Java
5. Сравнение бок о бок - наследование и интерфейс в Java в табличной форме
6. Резюме

Что такое наследование в Java?

Наследование может обеспечить повторное использование кода. Наследование помогает повторно использовать атрибуты и методы существующего класса. Механизм получения нового класса с использованием старого класса называется наследованием. Старый класс известен как родительский класс или супер класс. Производный класс называется дочерним классом или подклассом.

Синтаксис наследования Java выглядит следующим образом.

Имя класса подкласса расширяет имя суперкласса

объявление переменной;

объявление метода;

Концепция наследования может быть объяснена на следующем примере. Предположим, что существует класс с именем A следующим образом.

открытый класс A

public void sum ()

System.out.println ( «Сумма»);

Если мы хотим добавить новый метод без изменения существующего класса, мы можем сделать это следующим образом.

публичный класс B

public void sub ()

System.out.println ( «Sub»);

Программист может использовать наследование, чтобы использовать класс A sum ().

публичный класс B расширяет класс A

public void sub ()

System.out.println ( «Sub»);

В основной функции можно создать объект B и вызвать sub (), который принадлежит классу B, и sum (), который принадлежит классу A, используя наследование.

public static void main (String [] args)

B obj = новый B ();

obj.sub ();

obj.sum ();

Существуют разные виды наследования. Это одиночное наследование, множественное наследование, многоуровневое наследование и иерархическое наследование. В одиночное наследство, есть один базовый класс и один производный класс. В многоуровневое наследование, Есть три класса, а именно, базовый класс, промежуточный класс и производный класс. Промежуточный класс наследует от базового класса, а производный класс наследует от промежуточного класса. В иерархическое наследование, есть один базовый класс и много производных классов. Существует специальный тип, известный как Гибридное наследование. Это комбинация двух или более типов наследования.

Рисунок 01: Наследование

В Множественное наследование Есть много базовых классов и один производный класс. Предположим, что класс A и B являются базовыми классами. Класс C является производным классом. Если оба класса A и B имеют один и тот же метод, и программист вызывает этот метод из производного класса, это вызовет проблему неоднозначности. Наследование двух классов может вызвать ошибку во время компиляции. Поэтому множественное наследование не поддерживается в Java. Интерфейс может быть использован для преодоления этой проблемы.

Что такое интерфейс в Java?

Абстракция - это процесс скрытия деталей реализации и отображения только функциональных возможностей для пользователя. Абстракция может быть достигнута с использованием абстрактных классов или интерфейсов. Абстрактный метод - это метод без реализации. Класс с хотя бы одним абстрактным методом является абстрактным классом. Пример абстрактного класса выглядит следующим образом.

абстрактный класс А

абстрактная пустая сумма ();

Предположим, что есть два абстрактных класса как A и B. Чтобы реализовать абстрактные методы A и B, создается новый класс C. Тогда класс C должен расширять как A, так и B. Но множественное наследование не поддерживается в Java. Поэтому следует использовать интерфейсы. Интерфейсы могут использоваться для объявления методов, но невозможно определить методы. Невозможно создать объект с использованием интерфейсов. Класс C должен реализовывать все методы в интерфейсах A и B.

интерфейс A

пустая сумма ();

интерфейс B

void sub ();

класс C реализует A, B

public void sum ()

System.out.println ( «Суммирование»);

public void sub ()

System.out.println ( «Вычитание»);

Теперь в основной программе можно создать объект C и вызвать оба метода..

public static void main (String [] args)

C obj = новый C ();

obj.sum ();

obj.sub ();

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

Другое использование интерфейсов - это обеспечение безопасности. См. Код ниже.

интерфейс A

пустая сумма ();

класс B реализует A

public void sum ()

System.out.println ( «Суммирование»);

public void multiply ()

System.out.println ( «Умножение»);

При создании объекта B можно вызывать оба метода sum () и multiply (). Если программист хочет ограничить использование функции multiply (), это возможно следующим образом.

public static void main (String [] args)

A obj = новый B ();

obj.sum ();

A obj = новый B (); создаст объект. Он имеет тип A и память выделена как B. Можно вызвать sum (), но не может выполнить multiply (). Это ограничение сделано с использованием интерфейсов.

Каковы сходства между наследованием и интерфейсом в Java?

  • Обе концепции связаны с объектно-ориентированным программированием
  • Оба представляют отношения IS-A.

В чем разница между наследованием и интерфейсом в Java?

Наследование против интерфейса в Java

Наследование - это концепция ООП для получения новых классов из существующих классов.. Интерфейс - это механизм в ООП для реализации абстракции и множественного наследования.
использование
Наследование обеспечивает повторное использование кода. Интерфейсы обеспечивают абстракцию и множественное наследование.

Резюме - Наследование vs Интерфейс в Java

Java - это мультипарадигмальный язык программирования, который поддерживает объектно-ориентированное программирование. Наследование и интерфейсы связаны с объектно-ориентированным программированием. Разница между наследованием и интерфейсом заключается в том, что наследование заключается в получении новых классов из существующих классов, а интерфейсы - в реализации абстрактных классов и множественного наследования..

Загрузить PDF-версию Inheritance vs Interface в Java

Вы можете скачать PDF версию этой статьи и использовать ее в автономном режиме, как указано в примечании. Пожалуйста, загрузите PDF версию здесь. Разница между наследованием и интерфейсом в Java

Ссылка:

1.Point, учебники. «Java Inheritance.», Tutorials Point, 31 октября 2017 г. Доступно здесь 
2.Point, учебники. «Интерфейсы Java» , Tutorials Point, 31 октября 2017 года. Доступно здесь 

Изображение предоставлено:

1. «ПКТ-ООП-наследование-байки» Пьюк - собственная работа, (общественное достояние) через Викисклад Commons