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

Ключова разлика - наследяване срещу интерфейс в Java
 

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

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е Наследяването в Java
3. Какво е интерфейс в Java
4. Прилики между Наследяването и интерфейса в Java
5. Паралелно сравнение - Наследяване срещу интерфейс в Java в таблична форма
6. Резюме

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

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

Синтаксисът на наследяване на Java е следният.

клас subclass_name разширява име на суперклас

променлива декларация;

декларация за метод;

Концепцията за наследяване може да се обясни с помощта на следния пример. Да приемем, че има клас, наречен A, както следва.

публична класа A

публична невалидна сума ()

System.out.println ( "Сума");

Ако искаме да добавим нов метод, без да променяме съществуващия клас, можем да го направим по следния начин.

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

публично void sub ()

System.out.println ( "Под");

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

публичен клас B разширява клас A

публично void sub ()

System.out.println ( "Под");

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

public static void main (String [] args)

B obj = нов B ();

obj.sub ();

obj.sum ();

Има различни видове наследяване. Те са единично наследяване, многократно наследяване, многостепенно наследяване и йерархично наследяване. в единично наследяване, има един основен клас и един производен клас. в многостепенно наследяване, има три класа, а именно базов клас, междинен клас и производен клас. Междинният клас наследява от базовия клас, а производният клас наследява от междинен клас. в йерархично наследяване, има един основен клас и много производни класове. Има специален тип, известен като Хибридно наследяване. Това е комбинация от два или повече вида наследяване.

Фигура 01: Наследяване

в Множество наследяване има много базови класове и един производен клас. Да приемем, че клас A и B са базовите класове. Клас С е производният клас. Ако и класовете A и B имат един и същи метод и програмистът извика този метод от извлечения клас, това ще доведе до проблем с двусмислието. Наследяването на два класа може да причини грешка във времето на компилиране. Следователно множественото наследяване не се поддържа в Java. Интерфейс може да се използва за преодоляване на този проблем.

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

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

абстрактен клас A

абстрактна невалидна сума ();

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

интерфейс A

невалидна сума ();

интерфейс B

void sub ();

клас C изпълнява A, B

публична невалидна сума ()

System.out.println ( "сумиране");

публично void sub ()

System.out.println ( "изваждане");

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

public static void main (String [] args)

C obj = нов C ();

obj.sum ();

obj.sub ();

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

Друго използване на интерфейсите е, че осигурява сигурност. Вижте кода по-долу.

интерфейс A

невалидна сума ();

клас Б реализира A

публична невалидна сума ()

System.out.println ( "сумиране");

публично невалидно умножение ()

System.out.println ( "умножение");

Когато създавате обект от B, е възможно да се извикат и двата метода sum () и умножение (). Ако програмистът иска да ограничи използването на функция multiply (), възможно е следното.

public static void main (String [] args)

A obj = нов B ();

obj.sum ();

A obj = нов B (); ще създаде обект. Той е от тип А и паметта е разпределена като B. Възможно е да се извика сума (), но не може да се извърши умножение (). Това ограничение се извършва с помощта на интерфейси.

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

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

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

Наследяване срещу интерфейс в Java

Наследяването е концепция OOP за извличане на нови класове от съществуващите класове. Интерфейсът е механизъм в OOP за прилагане на абстракция и многократно наследяване.
употреба
Наследяването осигурява повторно използване на кода. Интерфейсите осигуряват абстракция и многократно наследяване.

Обобщение - наследяване срещу интерфейс в Java

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

Изтеглете PDF версията на Наследяване срещу интерфейс на Java

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версия тук Разлика между Наследяването и интерфейса в Java

справка:

1. Точка, уроци. „Наследяване на Java.“, Учебни точки, 31 октомври 2017. Достъпно тук 
2. Точка, уроци. „Java интерфейси.“ , Учебен пункт, 31 октомври 2017. Достъпно тук 

С любезност на изображенията:

1.'CPT-OOP-наследяване-мотоциклети 'от Pluke - Собствена работа, (Public Domain) през Commons Wikimedia