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

Съдържание:

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

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

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

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

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

Какво е наследяване в 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();

}

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

Разлика между наследяване и интерфейс в 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{

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 {

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

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

}

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

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

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