Спадкаваньне (праграмаваньне): розьніца паміж вэрсіямі

Змесціва выдалена Змесціва дададзена
д артаграфія
 
Радок 9:
Простым спадкаваньнем зьяўляецца спадкаваньне, калі нашчадак спадкуе ўласьцівасьці адной сваёй бацькоўскай клясы.
 
У пэўных мовах выкарыстоўваюцца [[абстрактная кляса|абстрактныя клясы]]. ''Абстрактная кляса'' — гэта кляса, якая ўтрымлівае прынамсі адзін [[абстрактны мэтад]]. Абстрактная кляса ня можа выкарыстоўвацца для непасрэднага стварэньня аб’ектаў, то бок ад такой клясы можна толькі спадкаваць. Аб'ектыАб’екты могуць быць створаныя толькі на аснове вытворных клясаў.
 
=== Множнае спадкаваньне ===
Радок 23:
Выкарыстоўваючы спадкаваньне падчас дызайну праграмы, варта не забывацца на пэўныя абмежаваньні, якія яно мае.
 
Напрыклад, няхай кляса <code>Асоба</code> мае такія ўласьцівасьці, як імя, адрас, нумар тэлефона, век, пол і расу. Можна вызначыць падклясу клясы <code>Асоба</code>, якую назваць як <code>Студэнт</code>, і якая будзе ўтрымліваць сярэдні бал асобы і сьпіс заняткаў, якія яна наведвае. І яшчэ адну падклясу клясы <code>Асоба</code>, якая будзе называцца <code>Супрацоўнік</code> і будзе ўтрымліваць назву пасады, кіраўніка і велічыню заробку.
 
Вызначыўшы такія клясы, мы таксама вызначылі і пэўныя абмежаваньні, ня ўсе зь якіх пажаданыя:
Радок 29:
=== Абмежаваньні праектаваньня з спадкаваньнем ===
* '''Адзінкавасьць''': выкарыстоўваючы простае спадкаваньне, падкляса можа спадкаваць толькі адну бацькоўскую клясу. Працягваючы вышэйзгаданы прыклад, <code>Асоба</code> можа быць альбо <code>Студэнтам</code>, альбо <code>Супрацоўнікам</code>, але не абодвума адразу. Выкарыстаньне [[множнае спадкаваньне|множнага спадкаваньня]] часткова вырашае гэту праблему, бо можна вызначыць клясу <code>СупрацоўнікСтудэнт</code>, якая будзе спадкаваць абедзьве клясы <code>Супрацоўнік</code> і <code>Студэнт</code>. Аднак гэта ўсё роўна дазваляе спадкавацца ад кожнай клясы толькі аднойчы, і таму гэтая схема ня можа выкарыстоўвацца ў выпадках, калі студэнт мае дзьве працы ці наведвае два ўнівэрсытэты.
 
* '''Статычнасьць''': герархія спадкаваньня аб’екта зафіксаваная і вызначаецца толькі аднойчы, калі выбіраецца тып аб’екта, і ня можа быць зьмененая з часам. Такім чынам спадкаваньне не дазваляе аб’екту тыпу <code>Студэнт</code> стаць аб’ектам тыпу <code>Супрацоўнік</code> з захаваньнем стану сваёй бацькоўскай клясы <code>Асоба</code>.
 
* '''Бачнасьць''': калі кліенцкі код мае доступ да аб’екта, звычайна ён мае доступ да зьвестак усіх ягоных бацькоўскіх клясаў. Нават калі бацькоўская кляса не была аб’яўленая публічнай, кліент усё яшчэ можа прывесьці аб’ект да тыпу бацькоўскай клясы. Напрыклад, не існуе спосабу прадаставіць пэўнаму мэтаду доступ да сярэдняга балу аб’екту клясы <code>Студэнт</code> без прадастаўленьня гэтаму мэтаду доступу да ўсіх асабістых зьвестак, якія захоўваюцца ў бацькоўскай клясе студэнта <code>Асоба</code>.