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

Опубликовано: 26 Декабря, 2021

Java - один из самых популярных и широко используемых языков программирования. Java уже много лет является одним из самых популярных языков программирования. Java объектно-ориентирована. Однако он не считается чисто объектно-ориентированным, поскольку он обеспечивает поддержку примитивных типов данных (таких как int, char и т. Д.). В этой статье мы поймем разницу между двумя наиболее важными концепциями в java, наследованием и интерфейсом.

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

Наследование: это механизм в java, с помощью которого одному классу разрешается наследовать функции другого класса. В java возможно множественное наследование. Они есть:

  1. Одиночное наследование: при одиночном наследовании подклассы наследуют свойства одного суперкласса. На изображении ниже класс A служит базовым классом для производного класса B.

  2. Многоуровневое наследование: при многоуровневом наследовании производный класс будет наследовать базовый класс, а также, как и производный класс, действовать как базовый класс для другого класса. На изображении ниже класс A служит базовым классом для производного класса B, который, в свою очередь, служит базовым классом для производного класса C. В Java класс не может напрямую обращаться к членам прародителя.

  3. Иерархическое наследование: в иерархическом наследовании один класс служит суперклассом (базовым классом) для более чем одного подкласса. На изображении ниже класс A служит базовым классом для производного класса B, C и D.

В следующей таблице описаны различия между наследованием и интерфейсом:

Категория Наследование Интерфейс
Описание Наследование - это механизм в java, с помощью которого одному классу разрешается наследовать функции другого класса. Интерфейс - это план класса. Он определяет, что должен делать класс, а не как. Как и класс, интерфейс может иметь методы и переменные, но методы, объявленные в интерфейсе, по умолчанию являются абстрактными (только подпись метода, без тела).
Использовать Он используется для получения функций другого класса. Он используется для полной абстракции.
Синтаксис class subclass_name расширяет superclass_name {
}
interface <interface_name> {
}
Число наследования Он используется для предоставления 4 типов наследования. (многоуровневое, простое, гибридное и иерархическое наследование) Используется для предоставления 1 типа наследования (множественного).
Ключевые слова Он использует ключевое слово extends. Он использует ключевое слово Implements.
Наследование Мы можем наследовать меньшие классы, чем интерфейс, если мы используем наследование. Мы можем унаследовать гораздо больше классов, чем наследование, если будем использовать интерфейс.
Определение метода В случае наследования методы могут быть определены внутри класса. В случае интерфейса методы не могут быть определены внутри класса (кроме использования статических ключевых слов и ключевых слов по умолчанию).
Перегрузка Это перегружает систему, если мы пытаемся расширить множество классов. Система не перегружена, сколько бы классов мы ни реализовали.
Предоставляемая функциональность Не обеспечивает функции слабого сцепления. Обеспечивает функцию слабой связи.
Множественное наследование Мы не можем выполнять множественное наследование (вызывает ошибку времени компиляции). Мы можем выполнять множественное наследование с помощью интерфейсов.

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