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

Съдържание:

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

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

Видео: Разлика между наследяване и интерфейс в Java
Видео: Настя и сборник весёлых историй 2024, Декември
Anonim

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

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

СЪДЪРЖАНИЕ

1. Общ преглед и ключова разлика

2. Какво е наследяване в Java

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

4. Прилики между наследяване и интерфейс в Java

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

6. Резюме

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

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

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

class subclass_name разширява superclass_name {

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

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

}

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

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

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

System.out.println („Сума“);

}

}

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

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

public void sub () {

System.out.println („Под“);

}

}

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

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

public void sub () {

System.out.println („Под“);

}

}

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

публична статична void main (String args) {

B obj = ново B ();

obj.sub ();

obj.sum ();

}

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

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

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

В Множественото наследяване има много базови класове и един производен клас. Да приемем, че клас A и B са базовите класове. Клас C е производният клас. Ако и класовете 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 („Сумиране“);

}

public void sub () {

System.out.println („Изваждане“);

}

}

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

публична статична void main (String args) {

C obj = нов C ();

obj.sum ();

obj.sub ();

}

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

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

интерфейс A {

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

}

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

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

System.out.println („Сумиране“);

}

public void multiply () {

System.out.println („Умножение“);

}

}

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

публична статична 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

Препоръчано: