Java е език за програмиране, разработен от Sun Microsystems. Java може да се използва за разработване на различни приложения. Това е мулти-парадигмен език, който поддържа обектно-ориентирано, структурирано и т.н. Основното предимство на Java е, че поддържа обектно-ориентирано програмиране (OOP). Програмистът може да създава класове и обекти. В OOP има четири стълба. Те са наследяване, полиморфизъм, абстракция и капсулиране. Наследяването и интерфейсите са свързани с OOP. Най- ключова разлика между наследяването и интерфейса е това наследяването е да се извлекат нови класове от съществуващите класове, а интерфейсът е да се реализират абстрактни класове и множество наследявания.
1. Преглед и ключова разлика
2. Какво е Наследяването в Java
3. Какво е интерфейс в Java
4. Прилики между Наследяването и интерфейса в Java
5. Паралелно сравнение - Наследяване срещу интерфейс в Java в таблична форма
6. Резюме
Наследяването може да постигне повторна използваемост на кода. Наследяването помага да се използват повторно атрибутите и методите на съществуващ клас. Механизмът за получаване на нов клас с помощта на стар клас се нарича наследяване. Старият клас е известен като родителски клас или суперклас. Полученият клас се нарича детски клас или подклас.
Синтаксисът на наследяване на 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. Интерфейс може да се използва за преодоляване на този проблем.
Абстракцията е процес на скриване на детайлите за внедряване и показване само на функционалностите на потребителя. Абстракция може да се постигне с помощта на абстрактни класове или интерфейси. Абстрактният метод е метод без изпълнение. Клас с поне един абстрактен метод е абстрактен клас. Пример за абстрактен клас е следният.
абстрактен клас 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 | |
Наследяването е концепция OOP за извличане на нови класове от съществуващите класове. | Интерфейсът е механизъм в OOP за прилагане на абстракция и многократно наследяване. |
употреба | |
Наследяването осигурява повторно използване на кода. | Интерфейсите осигуряват абстракция и многократно наследяване. |
Java е език за програмиране с много парадигми, който поддържа обектно-ориентирано програмиране. Наследяването и интерфейсите са свързани с обектно-ориентирано програмиране. Разликата между наследяването и интерфейса е, че наследяването е да се извличат нови класове от съществуващите класове и интерфейси е да се прилагат абстрактни класове и множество наследяване.
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версия тук Разлика между Наследяването и интерфейса в Java
1. Точка, уроци. „Наследяване на Java.“, Учебни точки, 31 октомври 2017. Достъпно тук
2. Точка, уроци. „Java интерфейси.“ , Учебен пункт, 31 октомври 2017. Достъпно тук
1.'CPT-OOP-наследяване-мотоциклети 'от Pluke - Собствена работа, (Public Domain) през Commons Wikimedia