Видео: Разлика между абстрактния клас и наследяването
2024 Автор: Mildred Bawerman | [email protected]. Последно модифициран: 2023-12-16 08:37
Абстрактен клас срещу наследяване
Абстрактният клас и наследяването са две важни обектно-ориентирани концепции, открити в много обектно-ориентирани езици за програмиране като Java. Абстрактният клас може да се разглежда като абстрактна версия на обикновен (конкретен) клас, докато наследяването позволява на новите класове да разширяват останалите класове. Абстрактният клас е клас, който не може да бъде инициализиран, но може да бъде разширен. И така, абстрактните класове имат смисъл само ако езикът за програмиране поддържа наследяване. В Java абстрактните класове се декларират с помощта на ключова дума Abstract, докато ключовата дума Extends се използва за наследяване от (супер) клас.
Какво е абстрактен клас?
Обикновено абстрактните класове, известни също като абстрактни базови класове (ABC), не могат да бъдат създадени (екземпляр на този клас не може да бъде създаден). И така, абстрактните класове имат смисъл само ако езикът за програмиране поддържа наследяване (възможност за създаване на подкласове от разширяване на клас). Абстрактните класове обикновено представляват абстрактна концепция или обект с частично или без изпълнение. Следователно, абстрактните класове действат като родителски класове, от които се извличат дъщерни класове, така че дъщерният клас ще споделя непълните характеристики на родителския клас и функционалността може да бъде добавена, за да ги завърши.
Абстрактните класове могат да съдържат абстрактни методи. Подкласовете, разширяващи абстрактния клас, могат да внедрят тези (наследени) абстрактни методи. Ако класът дете изпълнява всички подобни абстрактни методи, това е конкретен клас. Но ако не стане, класът дете също става абстрактен клас. Всичко това означава, че когато програмистът номинира клас като Абстракт, тя казва, че класът ще бъде непълен и ще има елементи, които трябва да бъдат завършени от наследствените подкласове. Това е хубав начин за създаване на договор между двама програмисти, което опростява задачите при разработването на софтуер. Програмистът, който пише код за наследяване, трябва да следва дефинициите на метода точно (но разбира се може да има собствена реализация).
Какво е наследяване?
Наследяването е обектно ориентирана концепция, която позволява на новите класове да разширяват други класове. Ключовата дума extends се използва за реализиране на концепцията за наследяване в програмния език Java. Наследството по същество осигурява повторно използване на код, като позволява разширяване на свойствата и поведението на съществуващ клас от новодефиниран клас. Когато нов подклас (или производен клас) разширява супер клас (или родителски клас), този подклас ще наследи всички атрибути и методи на супер класа. Подкласът може по избор да замени поведението (предоставя нова или разширена функционалност на методи), наследено от родителския клас. Обикновено подкласът не може да разшири множество супер класове (например в Java). Следователно не можете да използвате удължения за многократно наследяване. За да имате множествено наследяване, трябва да използвате интерфейси.
Каква е разликата между абстрактния клас и наследяването?
Абстрактните класове обикновено представляват абстрактна концепция или обект с частично или без изпълнение. Наследяването позволява на новите класове да разширяват останалите класове. Тъй като абстрактните класове не могат да бъдат създадени, трябва да използвате концепцията за наследяване, за да използвате абстрактните класове. В противен случай абстрактният клас няма полза. Абстрактните класове могат да съдържат абстрактни методи и когато класът се разширява, всички методи (абстрактни и конкретни) се наследяват. Наследеният клас може да реализира всеки или всички методи. Ако всички абстрактни методи не са приложени, тогава този клас също се превръща в абстрактен клас. Класът не може да наследява от повече от един клас абстракт (това не е качество на абстрактните класове само по себе си, а по-скоро ограничение на наследяването).
Препоръчано:
Разлика между полиморфизма и наследяването
Полиморфизъм срещу наследяване Когато двата термина полиморфизъм и наследяване бъдат ударени в интернет търсачка, всички върнати резултати ще
Разлика между абстрактния клас и интерфейса
Абстрактен клас срещу интерфейс Абстрактният клас и интерфейсът са две обектно-ориентирани конструкции, открити в много обектно-ориентирани езици за програмиране като Java
Разлика между полиморфизма и наследяването в ООП
Ключова разлика - Полиморфизмът срещу наследяването в OOP обектно-ориентираното програмиране (OOP) обикновено се използва за разработване на софтуер. Много езици за програмиране su
Разлика между хранителен клас и медицински клас силикон
Ключова разлика - хранителен клас срещу медицински клас силикон Търсенето на силиконов каучук нараства много бързо през последните няколко десетилетия, тъй като
Разлика между бизнес клас и първи клас
Бизнес клас срещу първи клас Разликата между бизнес класа и първи клас е много интересна област, която трябва да знаете, когато искате да летите комфортно. Бусин