Ключова разлика - наследяване срещу интерфейс в 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 ();
}
Има различни видове наследяване. Те са единично наследяване, множествено наследяване, многостепенно наследяване и йерархично наследяване. При единично наследяване има един основен клас и един производен клас. В многостепенното наследяване има три класа, а именно, основен клас, междинен клас и производен клас. Междинният клас наследява от базовия клас, а производният клас наследява от междинен клас. В йерархичното наследяване има един основен клас и много производни класове. Съществува специален тип, известен като хибридно наследяване. Това е комбинация от два или повече вида наследство.
Фигура 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