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

Оглавление:

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

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

Видео: Разница между наследованием и интерфейсом в Java
Видео: Выпуск 20. Абстрактные классы и интерфейсы. Разница 2024, Май
Anonim

Ключевое отличие - наследование и интерфейс в Java

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

СОДЕРЖАНИЕ

1. Обзор и ключевые различия

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

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

4. Сходства между наследованием и интерфейсом в Java

5. Сравнение бок о бок - наследование и интерфейс в Java в табличной форме

6. Резюме

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

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

Синтаксис наследования Java следующий.

class subclass_name расширяет superclass_name {

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

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

}

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

public class A {

public void sum () {

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

}

}

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

public class B {

public void sub () {

System.out.println («Подложка»);

}

}

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

public class B расширяет класс A {

public void sub () {

System.out.println («Подложка»);

}

}

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

public static void main (String args) {

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

obj.sub ();

obj.sum ();

}

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

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

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

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

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

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

abstract class A {

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

}

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

interface A {

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

}

interface 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 ();

}

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

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

interface 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

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

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

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

Загрузите PDF-версию наследования и интерфейса в Java

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

Рекомендуем: