Разлика между наследство и състав

Разлика между наследство и състав
Разлика между наследство и състав

Видео: Разлика между наследство и състав

Видео: Разлика между наследство и състав
Видео: Супружеская доля в наследстве. Всё, что нужно знать о правах супруга при наследовании. 2024, Ноември
Anonim

Наследяване срещу състав

Наследяването и композицията са две важни концепции, открити в ООП (обектно-ориентирано програмиране). С прости думи, както Композицията, така и Наследството се занимават с предоставяне на допълнителни свойства или поведение на клас. Наследяването е способността на даден клас да наследява свойства и поведение от родителски клас, като го разширява. От друга страна, Composition е способността на даден клас да съдържа обекти от различни класове като данни за членове.

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

Както бе споменато по-горе, наследяването е способността на даден клас да наследява свойства и поведение от родителски клас, като го разширява. Наследството по същество осигурява повторно използване на код, като позволява разширяване на свойствата и поведението на съществуващ клас от новодефиниран клас. Ако клас A се разширява B, тогава клас B се нарича родителски клас (или супер клас), а клас A се нарича детски клас (или производен клас / подклас). В този примерен сценарий клас A ще наследи всички публични и защитени атрибути и методи на супер класа (B). Подкласът може по избор да замени (предоставя нова или разширена функционалност на методите) поведението, наследено от родителския клас.

Наследяването представлява връзка „е-а“в ООП. Това по същество означава, че A също е B. С други думи, B може да бъде класът с общо описание на даден обект от реалния свят, но A определя определена специализация. В реалния проблем с програмирането класът Person може да бъде разширен, за да създаде клас Employee. Това се нарича специализация. Но можете също така първо да създадете клас Employee и след това да го генерализирате и към клас Person (т.е. обобщение). В този пример Служителят ще притежава всички свойства и поведение на Лицето (т.е. Служителят също е Лице) и може да съдържа някаква допълнителна функционалност (така че Лицето не е Служител).

Какво е композиция?

Композицията е способността на даден клас да съдържа обекти от различни класове като данни за членове. Например клас A може да съдържа обект от клас B като член. Тук всички публични методи (или функции), дефинирани в B, могат да бъдат изпълнени в клас A. Клас A се превръща в контейнера, докато клас B се превръща в съдържащ се клас. Съставът се нарича също контейнер. В този пример може да се каже, че клас A е съставен от клас B. В ООП Composition представлява връзка „има-a“. Важно е да се отбележи, че въпреки че контейнерът има достъп за изпълнение на всички публични методи на съдържания клас, той не е в състояние да промени или предостави допълнителна функционалност. Когато става въпрос за проблем от реалния свят за програмиране, обект от клас TextBox може да се съдържа в класа Form,и по този начин може да се каже, че формуляр съдържа TextBox (или алтернативно, формуляр се състои от TextBox).

Каква е разликата между наследяване и състав?

Въпреки че наследяването и композицията са две концепции за ООП, те са доста различни в това, което позволяват на програмиста да постигне. Наследяването е способността на даден клас да наследява свойства и поведение от родителски клас чрез разширяването му, докато Composition е способността на даден клас да съдържа обекти от различни класове като данни за член. Ако даден клас е разширен, той наследява всички публични и защитени свойства / поведение и тези поведения могат да бъдат заменени от подкласа. Но ако даден клас се съдържа в друг, контейнерът няма възможност да променя или добавя поведение към съдържащия се. Наследяването представлява връзка „is-a“в ООП, докато Composition представлява връзка „има-a“.

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