НаслСдованиС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: НаслСдованиС (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) | это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ НаслСдованиС (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)?

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈΠ»ΠΈ наслСдованиС: ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? / Π₯Π°Π±Ρ€

Π’ Π½Π°Ρ‡Π°Π»Π΅…

… Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π½ΠΈ наслСдования, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄.

И Π±Ρ‹Π» ΠΊΠΎΠ΄ Π½Π΅ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π»ΠΈΠ²Ρ‹ΠΌ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΡΡ, Π½Π΅Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ, нСсчастным, ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈ ΠΈΠ·ΠΌΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° Π±Ρ‹Π»Π° копипаста. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΠΎΠ²ΠΎΠΌΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΡˆΡ‚ΡƒΡ‡ΠΊΠ°ΠΌΠΈ. Π’Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π±Ρ‹Π» Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ. Части ΠΊΠΎΠ΄Π°, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ основной Π»ΠΎΠ³ΠΈΠΊΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ Π½Π΅Π΄ΠΎΡƒΠΌΠ΅Π½ΠΈΠ΅!

ΠœΡ€Π°Ρ‡Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π°.

Но Π²ΠΎΡ‚ Π»ΡƒΡ‡ΠΈΠΊ ООП воссиял Π½Π°Π΄ миром… ΠŸΡ€Π°Π²Π΄Π°, нСсколько дСсятилСтий1 Π½ΠΈΠΊΡ‚ΠΎ этого Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π». ΠŸΠΎΠΊΡƒΠ΄Π° Π½Π΅ появился графичСский интСрфСйс2, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, ΠΎΡ‡Π΅Π½ΡŒ-ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ ООП. Когда наТимаСшь Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΠΎΠΊΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ΅ (ΠΈΠ»ΠΈ Π΅Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŽ) сообщСниС «ΠΠ°ΠΆΠ°Ρ‚ΠΈΠ΅»3 ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚?

И Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ ООП Π²Π·Π»Π΅Ρ‚Π΅Π». Π‘Ρ‹Π»ΠΎ написано мноТСство4 ΠΊΠ½ΠΈΠ³, Ρ€Π°ΡΠΏΠ»ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ бСсчислСнныС5 ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ сСгодня-Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ?



Π£Π²Ρ‹, ΠΊΠΎΠ΄ (ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚) Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ

Π‘Π°ΠΌΡ‹Π΅ ΠΆΠ°Ρ€ΠΊΠΈΠ΅ споры ΠΈ наибольшСС Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΈ наслСдованиСм, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Π½Ρ‚Ρ€ΠΎΠΉ «ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ наслСдованию». Π’ΠΎΡ‚ ΠΎΠ± этом ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.


Когда ΠΌΠ°Π½Ρ‚Ρ€Ρ‹ врСдят

Π’ ТитСйском ΠΏΠ»Π°Π½Π΅ «ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ наслСдованию» Π² Ρ†Π΅Π»ΠΎΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ…ΠΎΡ‚ΡŒ я ΠΈ Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Π½Ρ‚Ρ€. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈ нСсут Π·Π΅Ρ€Π½ΠΎ истины, слишком Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°Ρ‚ΡŒΡΡ соблазну ΠΈ Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ·ΡƒΠ½Π³Ρƒ, Π½Π΅ понимая, Ρ‡Ρ‚ΠΎ Π·Π° Π½ΠΈΠΌ скрываСтся. А это всСгда Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΠΊΠΎΠΌ.

Π–Π΅Π»Ρ‚ΡƒΡˆΠ½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π²Ρ€ΠΎΠ΄Π΅ «ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π·Π»ΠΎ»6 Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎ ΠΌΠ½Π΅, особСнно Ссли Π°Π²Ρ‚ΠΎΡ€ пытаСтся ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ свои набросы, сначала Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ примСняя наслСдованиС, Π° ΠΏΠΎΡ‚ΠΎΠΌ дСлая Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π²ΠΎ всСм Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ΠΎ. Ну Ρ‚ΠΈΠΏΠ° «ΠΌΠΎΠ»ΠΎΡ‚ΠΊΠΈ β€” отстой, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΈ нСльзя Π·Π°Π²ΠΈΠ½Ρ‚ΠΈΡ‚ΡŒ ΡˆΡƒΡ€ΡƒΠΏ.»

НачнСм с основ.


ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ

Π”Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ ООП «ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ классы со свойствами, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ простоС (ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅) наслСдованиС. Никаких Π²Π°ΠΌ интСрфСйсов, примСсСй, аспСктов, мноТСствСнного наслСдования, Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ², Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ, лямбд, β€” Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ самых простых Π²Π΅Ρ‰Π΅ΠΉ:


  • Класс: имСнованная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ ΠΏΡ€Π΅Π΄ΠΊΠ° (супСркласс), опрСдСлСнная ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • ПолС: ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ свойство с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚, Π² частности, ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (см. композиция).
  • ΠœΠ΅Ρ‚ΠΎΠ΄: имСнованная функция ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π· Π½ΠΈΡ…, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ класса.
  • НаслСдованиС: класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ своСго ΠΏΡ€Π΅Π΄ΠΊΠ°. НаслСдованиС Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎ: класс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ β€”
    Object
    ), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, нСявного. НаслСдник ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ поля Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Ссли ΠΏΠΎΠ»Π΅ Ρƒ нас ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Класс, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса, создавая Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ связь ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НС влСзая Π² Π΄Π΅Π±Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ простой ассоциациСй, Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ «Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ…» ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ: композиция β€” это ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ прСдоставляСт Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.
  • Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ: ΠΌΡ‹ обращаСмся с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠ°ΠΊ с Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ, Π° Π½Π΅ ΠΊΠ°ΠΊ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚Π΅ΠΌ самым скрываСм ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса. Если клиСнтский ΠΊΠΎΠ΄ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ интСрфСйса, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

НаслСдованиС Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ

НаслСдованиС β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ понятиС ООП. Π’ языкС программирования ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ сообщСния, Π½ΠΎ Π±Π΅Π· наслСдования ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основанным Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, Π½ΠΎ всС Π΅Ρ‰Π΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌ).


… ΠΊΠ°ΠΊ ΠΈ композиция

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ это Ρ‚ΠΎΠΆΠ΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ свойство, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ любого языка. Π”Π°ΠΆΠ΅ Ссли язык Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (Ρ‡Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ Π² наши Π΄Π½ΠΈ), люди всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ катСгориями частСй ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π‘Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ частям.

(Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Ρ‚ΠΎΠΆΠ΅ Π²Π΅Ρ‰ΡŒ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ, Π½ΠΎ сСйчас Ρ€Π΅Ρ‡ΡŒ Π½Π΅ ΠΎ Π½Π΅ΠΉ)


Π’Π°ΠΊ ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ вСсь сыр-Π±ΠΎΡ€?

Ну Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΈ композиция, ΠΈ наслСдованиС Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹, Π² Ρ‡Π΅ΠΌ Π΄Π΅Π»ΠΎ-Ρ‚ΠΎ?

А Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ»ΠΈ Ρ…ΡƒΠΆΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО β€” это всСгда Π²Ρ‹Π±ΠΎΡ€ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ³ΠΎ баланса, компромисс.

Π‘ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ всС Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ просто, ΠΌΡ‹ с Π½Π΅ΠΉ постоянно сталкиваСмся Π² ΠΆΠΈΠ·Π½ΠΈ: Ρƒ стула Π΅ΡΡ‚ΡŒ Π½ΠΎΠΆΠΊΠΈ, стСна состоит ΠΈΠ· ΠΊΠΈΡ€ΠΏΠΈΡ‡Π΅ΠΉ ΠΈ Ρ†Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. А Π²ΠΎΡ‚ наслСдованиС, нСсмотря Π½Π° своС простоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ всС ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ, Ссли Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎ Π½Π΅ ΠΏΠΎΡ€Π°Π·ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. НаслСдованиС это вСсьма абстрактная ΡˆΡ‚ΡƒΠΊΠ°, ΠΎ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊ просто Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡ‚Ρ€ΠΎΠ³Π°Π΅ΡˆΡŒ. ΠœΡ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ‹ΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π½ΠΎ это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈ. Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° композиция β€” ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ: ΠΈΠ· частСй ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅. А Π²ΠΎΡ‚ с наслСдованиСм слоТнСС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ сразу ΠΎ Π΄Π²ΡƒΡ… Π²Π΅Ρ‰Π°Ρ…: ΠΎ смыслС ΠΈ ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅.


НаслСдованиС смысловоС

Как Π² Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ классификация таксонов ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ, Ρ‚Π°ΠΊ наслСдованиС ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ понятий ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. УпорядочиваСт ΠΈΡ… ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊ частному, собираСт родствСнныС ΠΈΠ΄Π΅ΠΈ Π² Π²Π΅Ρ‚Π²ΠΈ иСрархичСского Π΄Ρ€Π΅Π²Π°. Бмысл (сСмантика) класса ΠΏΠΎ большСй части Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ Π² Π΅Π³ΠΎ интСрфСйсС β€” Π½Π°Π±ΠΎΡ€Π΅ сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ класс способСн ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСтся ΠΈ Ρ‚Π΅ΠΌΠΈ сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚. УнаслСдовался ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΊΠ° β€” Π±ΡƒΠ΄ΡŒ Π΄ΠΎΠ±Ρ€ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ всС сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΊ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½ (ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΊΠ° β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.) И поэтому наслСдованиС связываСт наслСдника с ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ Π³ΠΎΡ€Π°Π·Π΄ΠΎ сильнСС, Ρ‡Π΅ΠΌ Ссли Π±Ρ‹ ΠΌΡ‹ взяли просто экзСмпляр ΠΏΡ€Π΅Π΄ΠΊΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Ссли класс Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ совсСм простоС, ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ, Π΅Π³ΠΎ имя нСсСт ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ· Π½Π΅Π³ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области.


НаслСдованиС мСханичСскоС

Говоря ΠΎ наслСдовании Π² мСханичСском ΠΏΠ»Π°Π½Π΅, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ наслСдованиС Π±Π΅Ρ€Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ (поля) ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² наслСдниках. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ, Ссли ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ унаслСдуСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ (ΠΊΠΎΠ΄) ΠΏΡ€Π΅Π΄ΠΊΠ°, Ρ‚ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΈ Π΅Π³ΠΎ интСрфСйс.

Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚Π° ΠΈΠΌΠ΅Π½Π½ΠΎ эта двойствСнная ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° наслСдования7 Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ОО-языков. МногиС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ наслСдованиС β€” это Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, хотя ΠΎΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого. Если ΠΏΡ€ΠΈΠ΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” ΠΆΠ΄ΠΈ Π±Π΅Π΄Ρ‹ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. Π’ΠΎΡ‚ ΠΏΠ°Ρ€Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².


Как Π½Π΅ Π½Π°Π΄ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1

class Stack extends ArrayList {
    public void push(Object value) { … }
    public Object pop() { … }
}

Казалось Π±Ρ‹, класс Stack, всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Но посмотритС Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π΅Π³ΠΎ интСрфСйс. Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² классС с ΠΈΠΌΠ΅Π½Π΅ΠΌ Stack? ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ push() ΠΈ pop(), Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΅Ρ‰Π΅. А Ρƒ нас? Π£ нас Π΅ΡΡ‚ΡŒ get(), set(), add(), remove(), clear() ΠΈ Π΅Ρ‰Π΅ ΠΊΡƒΡ‡Π° Π±Π°Ρ€Π°Ρ…Π»Π°, Π΄ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ ΠΎΡ‚ ArrayList, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ стСку Π½Ρƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

МоТно Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, clear()) Π΄Π°ΠΆΠ΅ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ наши Π½ΡƒΠΆΠ΄Ρ‹, Π½ΠΎ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°Ρ‚ΠΎ Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·-Π·Π° ΠΎΠ΄Π½ΠΎΠΉ ошибки Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅? На самом Π΄Π΅Π»Π΅ Ρ‚Ρ€Π΅Ρ…: ΠΎΠ΄Π½ΠΎΠΉ смысловой, ΠΎΠ΄Π½ΠΎΠΉ мСханичСской ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ:


  1. Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ «Stack это ArrayList» Π»ΠΎΠΆΠ½ΠΎ. Stack Π½Π΅ являСтся ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠΌ ArrayList. Π—Π°Π΄Π°Ρ‡Π° стСка β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° LIFO (послСдним ΠΏΡ€ΠΈΡˆΠ΅Π», ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡˆΠ΅Π»), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π»Π΅Π³ΠΊΠΎ удовлСтворяСтся интСрфСйсом push/pop, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ интСрфСйсом ArrayList.
  2. ΠœΠ΅Ρ…Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΈ наслСдованиС ΠΎΡ‚ ArrayList Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ извСстно, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ArrayList для хранСния элСмСнтов стСка.
  3. Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, рСализуя стСк Ρ‡Π΅Ρ€Π΅Π· ArrayList ΠΌΡ‹ смСшиваСм Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ области: ArrayList β€” это коллСкция с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ доступом, Π° стСк β€” это понятиС ΠΈΠ· ΠΌΠΈΡ€Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, со строго ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ (Π° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ)8 доступом.

ПослСдний ΠΏΡƒΠ½ΠΊΡ‚ β€” Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π½ΠΎ ваТная Π²Π΅Ρ‰ΡŒ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Π½Π΅Π΅ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Π΅Π΅.


Как Π½Π΅ Π½Π°Π΄ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2

Частая ошибка ΠΏΡ€ΠΈ наслСдовании β€” это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ модСль ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, унаслСдовав Π΅Π΅ ΠΎΡ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎΡ‚, скаТСм, Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² (класс Customer) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ подмноТСство. Π›Π΅Π³ΠΊΠΎ! НаслСдуСмся ΠΎΡ‚ ArrayList<Customer>, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это CustomerGroup ΠΈ понСслась.

НС Ρ‚ΡƒΡ‚-Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ. ΠŸΠΎΡΡ‚ΡƒΠΏΠΈΠ² Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΎΠΏΡΡ‚ΡŒ спутаСм Π΄Π²Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ области. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ этого:


  1. ArrayList<Customer> это ΡƒΠΆΠ΅ наслСдник списка, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° «ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ», Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  2. CustomerGroup это совсСм другая ΡˆΡ‚ΡƒΠΊΠ° β€” класс ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области (Π΄ΠΎΠΌΠ΅Π½Π°).
  3. ΠšΠ»Π°ΡΡΡ‹ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ….

Π‘Π»ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρƒ нас Ρ‚Π°ΠΌ всС Π²Π½ΡƒΡ‚Ρ€ΠΈ сдСлано. РассуТдая ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ понятиями ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΈ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° Π½ΡŽΠ°Π½ΡΡ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства. Если Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² наслСдовании Ρ‚ΠΎΠ»ΡŒΠΊΠΎ инструмСнт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, ΠΌΡ‹ Ρ€Π°Π· Π·Π° Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒΡΡ Π² эту Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ.


Π”Π΅Π»ΠΎ Π½Π΅ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌ наслСдовании

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ наслСдованиС ΠΏΠΎΠΊΠ° остаСтся самой популярной модСлью ООП. Оно Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²Π»Π΅Ρ‡Π΅Ρ‚ наслСдованиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΡŽ (coupling β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.) ΠΌΠ΅ΠΆΠ΄Ρƒ классами. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π±Π΅Π΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° наслСдования Ρƒ нас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π½Π° ΠΎΠ±Π΅ потрСбности: ΠΈ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ. Если использовали для ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Ρ‚ΠΎ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ нСльзя. А Ρ€Π°Π· Ρ‚Π°ΠΊ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мноТСствСнноС наслСдованиС всС исправит?

НСт. ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ наслСдования Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ областями: ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ (структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, сСти) ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ (бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°). Если CustomerGroup Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ArrayList<Customer> ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, скаТСм, DemographicSegment, Ρ‚ΠΎ Π΄Π²Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ области пСрСплСтутся ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Π° «Π²ΠΈΠ΄ΠΎΠ²Π°Ρ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² станСт Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния) Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ. НаслСдуСмся ΠΎΡ‚ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² языкС ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… классов ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ, Ρ€ΠΎΠ²Π½ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ «ΠΌΠ΅Ρ…Π°Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ» Ρ‡Π°ΡΡ‚ΡŒ вашСй Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠŸΠΎΡ‚ΠΎΠΌ соСдиняСм ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ΡΡ части ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Π½ΠΎ Π½Π΅ наслСдованиСм. Π˜Π½Ρ‹ΠΌΠΈ словами:

ΠžΡ‚ инструмСнтов ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ частая ошибка Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Π§Ρ‚ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, вСдь Ρ‚Π°ΠΊ просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. Π Π΅Π΄ΠΊΠΎ Π³Π΄Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡˆΡŒ обсуТдСния, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π•Ρ‰Π΅ Ρ€Π°Π·: бизнСс-сущности Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтами, Π° Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΈ. ΠœΡƒΡ…ΠΈ (инструмСнты) β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΡ‚Π»Π΅Ρ‚Ρ‹ (бизнСс-ΠΌΠΎΠ΄Π΅Π»ΠΈ) β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π’Π°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ наслСдованиС?


НаслСдуСмся ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ

Π§Π°Ρ‰Π΅ всСго β€” ΠΈ ΠΏΡ€ΠΈ этом с наибольшСй ΠΎΡ‚Π΄Π°Ρ‡Π΅ΠΉ β€” наслСдованиС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для описания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° (Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «differential programming» β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.) НапримСр, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° особСнная ΠΊΠ½ΠΎΠΏΠΊΠ° с нСбольшими дополнСниями. ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, наслСдуСмся ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса Кнопка. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ наш Π½ΠΎΠ²Ρ‹ΠΉ класс, это всС Π΅Ρ‰Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ°, Π° ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ наслСдуСм API класса Кнопка, Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ добавляСтся ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ. А Π²ΠΎΡ‚ Ссли Π² наслСдникС Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ убираСтся, это ΠΏΠΎΠ²ΠΎΠ΄ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ, Π° Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ наслСдованиС.

НаслСдованиС ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ всСго для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ сходных сущностСй ΠΈ понятий, опрСдСлСния сСмСйств классов, ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ понятий, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, исходно Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Если всё ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΈΠ΄Π΅Ρ‚, Π½Π΅ Π±ΠΎΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ эти ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ9 Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ соотвСтствовали ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.


ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈΠ»ΠΈ наслСдованиС: Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

Π’ ситуации, ΠΊΠΎΠ³Π΄Π° Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, взглянитС Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Π² Π΄Π²ΡƒΡ… плоскостях:


  1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ мСханичСскоС исполнСниС бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  2. Π§Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΠΎ смыслу ΠΈ ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚.

Пока наслСдованиС остаСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ плоскости, всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Но Ссли иСрархия ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π΅ плоскости сразу, это ΠΏΠ»ΠΎΡ…ΠΎΠΉ симптом.

НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ повСдСния внСшнСго. Π£ внСшнСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΡƒΡ‡Π° прокси-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΡƒΠΏΠΎ ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ этом случаС посмотритС, Π° Π½Π΅ стоит Π»ΠΈ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, хотя Π±Ρ‹ частично.

РазумССтся, Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ инструкции Π½Π΅ замСнят Π³ΠΎΠ»ΠΎΠ²Ρƒ Π½Π° ΠΏΠ»Π΅Ρ‡Π°Ρ…. Когда ΡΡ‚Ρ€ΠΎΠΈΡˆΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль, Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ. Но Ссли Π²Π°ΠΌ хочСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», Ρ‚ΠΎ поТалуйста.

НаслСдуСм, Ссли:


  1. Оба класса ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
  2. НаслСдник являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠΌ (Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… LSP β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.) ΠΏΡ€Π΅Π΄ΠΊΠ°
  3. Код ΠΏΡ€Π΅Π΄ΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π»ΠΈΠ±ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для наслСдника
  4. НаслСдник Π² основном добавляСт Π»ΠΎΠ³ΠΈΠΊΡƒ

Иногда всС эти условия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ:


  • Π² случаС модСлирования высокоуровнСвой Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
  • ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Π½ΠΈΡ…
  • ΠΏΡ€ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (Π°Π²Ρ‚ΠΎΡ€ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «differential programming», ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, понимая ΠΏΠΎΠ΄ Π½ΠΈΠΌ Π½Π΅Ρ‡Ρ‚ΠΎ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ DDP β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.)

Если это Π½Π΅ ваш случай, Ρ‚ΠΎ ΠΈ наслСдованиС Π²Π°ΠΌ, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ часто. Но Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ «ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ» ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ наслСдованию, ΠΈ Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° «Π»ΡƒΡ‡ΡˆΠ΅». Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ вашСй Π·Π°Π΄Π°Ρ‡ΠΈ.

НадСюсь, эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°!


ПослСсловиС

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ сотрудникам ThoughtWorks Π·Π° ΠΈΡ… Ρ†Π΅Π½Π½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ ΠΈ замСчания: ΠŸΠΈΡ‚Ρƒ Π₯огсону, Π’ΠΈΠΌΡƒ Π‘Ρ€Π°ΡƒΠ½Ρƒ, Π‘ΠΊΠΎΡ‚Ρ‚Ρƒ Робинсону, ΠœΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ Π€Π°ΡƒΠ»Π΅Ρ€Ρƒ, Минди ΠžΡ€, Π¨ΠΎΠ½Ρƒ ΠΡŒΡŽΡ…ΡΠΌΡƒ, Бэму Гибсону ΠΈ ΠœΠ°Ρ…Π΅Π½Π΄Ρ€Π΅ ΠšΠ°Ρ€ΠΈΡ.




1

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ОО-язык, SIMULA 67, появился Π² 1967 Π³ΠΎΠ΄Ρƒ.


2

БистСмныС ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ программисты приняли Π½Π° Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ C++ Π² сСрСдинС 1980-Ρ…, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ООП стал общСпринятым, ΠΏΡ€ΠΎΡˆΠ΅Π» Π΅Ρ‰Π΅ дСсяток Π»Π΅Ρ‚.


3

Π― Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽ, Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΏΡ€ΠΎ ΠΏΠ°Π±/саб, Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°Π·Π΄ΡƒΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ.


4

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написаниС этого тСкста Амазон ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ 24777 ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ООП.


5

Поиск Π² Π³ΡƒΠ³Π»Π΅ ΠΏΠΎ Ρ„Ρ€Π°Π·Π΅ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» Π΄Π°Π΅Ρ‚ 8 ΠΌΠ»Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².


6

Поиск Π² Π³ΡƒΠ³Π»Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ 37600 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΠΎ запросу «Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ это Π·Π»ΠΎ».


7

Бмысл (интСрфСйс) ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ (исполнСниС) ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π° счСт услоТнСния языка. Π‘ΠΌ. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· спСцификации языка D.


8

Π‘ Π³Ρ€ΡƒΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Π² Java Stack унаслСдован ΠΎΡ‚ Vector.


9

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования Ρ‡Π΅Ρ€Π΅Π· наслСдования Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅ΠΌΡ‹ ΡΡ‚Π°Ρ‚ΡŒΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ваш Π΄ΠΈΠ·Π°ΠΉΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ потрСбности ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом, ΠΈ Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ наслСдник.




ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ ООП-Ρ‡Π°Ρ‚Ρƒ Π² Telegram, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ этот тСкст Π½Π΅ смог Π±Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП. НаслСдованиС — FoxmindEd

НаслСдованиС – Ρ‚Π°ΠΊΠΎΠΉ интСрСсный ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных программистов Π²ΠΎΠΎΠ±Ρ‰Π΅ стараСтся ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ наслСдованиС? По Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ это Ρ‚Π°ΠΊ: «абстрактный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°, способствуя ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния».

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠΆΡƒ Π½Π° чСловСчСский: ΠΎΠ΄ΠΈΠ½ класс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс, Π΅Π³ΠΎ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ? ΠŸΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ класс ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ сСбя наслСдником ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ класса, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π΅ΠΌ автоматичСски. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… языках. Π’ Java это extenсe, Π² Π‘++ это Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅, Π² Ruby – Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ скобочка, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

НаслСдованиС β€” это Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ классами. Класс-наслСдник ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса-ΠΏΡ€Π΅Π΄ΠΊΠ°, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. НапримСр, класс «собака» являСтся наслСдником класса Β«ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅Β», Π½ΠΎ Β«ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅Β» Π½Π΅ наслСдуСт свойства класса «собака». Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, наслСдник β€” это Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΈΠΉ класс ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ.Β 

ΠŸΡ€ΠΈ этом наслСдованиС называСтся словом extenсe, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ β€œΡ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅β€. НапримСр, ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ для класса «собака» ΠΏΠΎΠ»Π΅ Β«Π»Π°ΠΏΡ‹Β» β€” Π° для класса Β«ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅Β» ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… часто вовсС Π½Π΅Ρ‚ Π»Π°ΠΏ, Ссли это Ρ€Ρ‹Π±Π° ΠΈΠ»ΠΈ змСя. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ класс-наслСдник ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ свойства Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄.

НаслСдованиС Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΈ мноТСствСнноС. ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ – это ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько классов Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС – ΠΊΠΎΠ³Π΄Π° класс наслСдуСтся ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС Π΅ΡΡ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ пСрСнСсти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ\ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. Но, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Java мноТСствСнноС наслСдованиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° классов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ интСрфСйса – Π΄Π°, интСрфСйс это Ρ‚ΠΎΠΆΠ΅ класс.

Из-Π·Π° Ρ‡Π΅Π³ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ мноТСствСнноС наслСдованиС? Из-Π·Π° Ρ€ΠΎΠΌΠ±ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ³ΠΎ наслСдования. Когда Π΄Π²Π° класса Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΊΠΈΠΉ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ класс наслСдуСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°: нСпонятно, какая рСализация Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Scala, это Ρ€Π΅ΡˆΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ порядка записи. Но это Π½Π΅ такая ΡƒΠΆ ваТная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², мноТСствСнноС наслСдованиС Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊΠΎΠ΅ большоС это ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅. Π’ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΌΠΎΠ΅ΠΉ ΡŽΠ½ΠΎΡΡ‚ΠΈ Π±Ρ‹Π»ΠΎ принято Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΡ‚ всСго ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· наслСдованиС. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ программисты погрязли Π² Π·Π°ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² наслСдования. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ программист ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π» сСбС Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс (ΠΈΠ»ΠΈ нСсколько), ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… наслСдовалось всС. Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ Π±Ρ‹Π»Π° ситуация, ΠΊΠΎΠ³Π΄Π° Ρƒ класса Π±Ρ‹Π» пятнадцатый ΠΈΠ»ΠΈ Π΄Π²Π°Π΄Ρ†Π°Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ наслСдования. Π’ этих классах ΠΌΠΎΠ³Π»ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ΄Π°, Π° названия Ρƒ Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ просто наркоманскиС. Π­Ρ‚Π° ΠΌΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ мноТСство Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… программистов ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π° Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вмСсто наслСдованиС. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° класс Π½Π΅ наслСдуСт, Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс. И ΠΎΠ½ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Ρ‹Π»ΠΈ ΠΏΡ€Π°Π²Ρ‹, Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ маятник качнулся Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону.

БСйчас ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ программисты ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ наслСдованиС Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π° Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π£Π²Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ΠΈ ΡΡ‚Ρ€Π΅Π»ΡΡŽΡ‚ сСбС Π² Π½ΠΎΠ³Ρƒ. Допустим, Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ°Π΄Ρ€ΠΎΠ²ΡƒΡŽ систСму. Π£ вас Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Β«ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Β», ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Β«Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€Β», ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Β«ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Β». Если ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ наслСдниками ΠΎΡ‚ класса Β«person”, Π° просто Ρ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… класса, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство сотрудников ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ всС Ρ‚Ρ€ΠΈ списка. А ΠΊΠΎΠ³Π΄Π° добавится Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ сотрудников, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подсчитываСт сотрудников, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ список. Если ΠΆΠ΅ понадобится ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… сотрудников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² офисС, Π²Ρ‹ с ΡƒΠΌΠ° сойдСтС. Π£ вас ΠΏΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΎΠ² сотрудников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π΅ взаимосвязаны. Π˜Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ΄ вырастаСт Π² Ρ€Π°Π·Ρ‹. Π­Ρ‚ΠΎ Π³Π»ΡƒΠΏΠΎ.

Π― Π²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ программисты ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ наслСдованиС Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΎΡΡŒ. Мой Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΈ Π²Π°ΠΌ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ наслСдованиС, ΠΊΠΎΠ³Π΄Π° эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ‚Π΅ΠΊΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ ΠΈΠ· Π΄Ρ€ΡƒΠ³Π°. Π“Π»ΡƒΠΏΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ нСсвязанный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ просто для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свойства: Ρ‚ΡƒΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Но Π² ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… случаях, ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΡΡŒ ΠΎΡ‚ наслСдования, Π²Ρ‹ выстрСлитС сСбС Π² Π½ΠΎΠ³Ρƒ ΠΈ создадитС массу ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° Ρ€ΠΎΠ²Π½ΠΎΠΌ мСстС.

Π”Π°, я понимаю, Ρ‡Ρ‚ΠΎ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΌΠ΅ΠΏΠΏΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ наслСдования, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Но Ссли Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с GoF-овскими ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌΠΈ, вспомнитС: ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΡ„ΠΎΡ€ΠΌΠΈΠ·ΠΌ. А истинный ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ, Π±Π΅Π· наслСдования практичСски Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ наслСдования, Π²Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ всСй ΠΌΠΎΡ‰ΠΈ ООП ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ Π² ΠΊΠ°ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Π΅ΠΊ, Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. НаслСдованиС – это ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… сил ООП, ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π΅ Π³Π»ΡƒΠΏΠΎ.Β 

НаслСдованиС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ допустимыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования

НаслСдованиС β€” это мощная концСпция Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, которая позволяСт классам Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов. ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Однако ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π΅Π½ для понимания, сопровоТдСния ΠΈ измСнСния.

К соТалСнию, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ наслСдованиС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½Π΅ принимая Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ нСдостатки. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°Π·Π΄ΡƒΡ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Π½Π΅Π³ΠΈΠ±ΠΊΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эффСктивСн, ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² сопровоТдСнии ΠΈ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π Π°Π½Π΅Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ… ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ… Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ .Net. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим допустимыС ΠΈ нСдопустимыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования наслСдования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ использованию этой ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ.

НСдостатки наслСдования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π₯отя наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ инструмСнтом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ. Π—Π΄Π΅ΡΡŒ я ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡŽ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ наслСдования.

ГСрмСтичная ΠΌΡƒΡ„Ρ‚Π°

НаслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π΅ΡΠ½ΡƒΡŽ связь ΠΌΠ΅ΠΆΠ΄Ρƒ классами, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ послСдствия для Π΄Ρ€ΡƒΠ³ΠΈΡ…. ВСсная связь Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ класса сильно зависят Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ слоТно ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ тСсной связи, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ создаСт иСрархичСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами. ΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов, ΠΈ измСнСния Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ подкласса. Если нСсколько подклассов Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, измСнСния Π² этом Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ эффСкт Π²ΠΎ всСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π΅ΡΠ½ΡƒΡŽ связь, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сильно зависит Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. НапримСр, подкласс ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, Ρ‡Ρ‚ΠΎ затрудняСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ подкласса Π±Π΅Π· измСнСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

ВСсная связь ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ влияниС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ошибки ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ с ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ слоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ тСсной связи ΠΏΡ€ΠΈ использовании наслСдования, Π²Π°ΠΆΠ½ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ влияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС Π½Π° Π΅Π³ΠΎ подклассы. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ композиция ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ связанности ΠΈ создания Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°

Π₯отя наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ использованиСм ΠΊΠΎΠ΄Π°, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ. НаслСдованиС способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΊΠΎΠ΄Π°, позволяя подклассам Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ дублирования ΠΊΠΎΠ΄Π°. Однако это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ зависимости, Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах.

Одним ΠΈΠ· способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, являСтся ΠΏΠΎΠΎΡ‰Ρ€Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ созданию Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… классов, тСсно связанных с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ΄ сильно зависит ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ для использования Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстах.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ использованиСм ΠΊΠΎΠ΄Π° ΠΈΠ·-Π·Π° продвиТСния ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΆΠ΅ΡΡ‚ΠΊΡƒΡŽ структуру ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ситуациям, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ придСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ подклассы ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… частях ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ композиция ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ структуры ΠΊΠΎΠ΄Π°, упрощая ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… контСкстах. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ зависимостях ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΏΡ€ΠΈ использовании наслСдования ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ΄. Выполняя эти шаги, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ использованиСм ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ использовании наслСдования Π² своих ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Π°Ρ….

ΠΠ΅Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

НаслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСгибкости Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ иСрархичСской ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΆΠ΅ΡΡ‚ΠΊΡƒΡŽ структуру ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ. НаслСдованиС устанавливаСт ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ классами, Π³Π΄Π΅ подклассы Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов. Π₯отя это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ кодовая Π±Π°Π·Π° станСт Π½Π΅Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Одним ΠΈΠ· способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСгибкости, являСтся созданиС Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ подклассы Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов, иСрархия со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΈ слоТнСС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ эффСкт Π²ΠΎ всСй ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСгибкости, продвигая Β«Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽΒ» структуру ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ. НаслСдованиС устанавливаСт ΠΌΠ΅ΠΆΠ΄Ρƒ классами ТСсткиС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎ-Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ повСдСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π±Π΅Π· воздСйствия Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· измСнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… частСй ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСгибкости ΠΏΡ€ΠΈ использовании наслСдования, Π²Π°ΠΆΠ½ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ влияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС Π½Π° Π΅Π³ΠΎ подклассы. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ композиция ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΡ… структур ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³Ρ‡Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ помня ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… нСдостатках наслСдования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π΅Π½ для чтСния ΠΈ сопровоТдСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π³ΠΈΠ±ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΡΡ трСбованиям с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ программирования, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ подкласс наслСдуСтся ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов. Π₯отя это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ряду ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях.

Одним ΠΈΠ· основных нСдостатков мноТСствСнного наслСдования являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. Когда подкласс наслСдуСтся ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ свойствами Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ свойство слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам Π² ΠΊΠΎΠ΄Π΅.

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с мноТСствСнным наслСдованиСм Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ созданию слоТной ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ для понимания ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹. По ΠΌΠ΅Ρ€Π΅ добавлСния большСго количСства Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами становятся Π±ΠΎΠ»Π΅Π΅ слоТными, Ρ‡Ρ‚ΠΎ затрудняСт ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π° с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΈ ошибкам.

НаконСц, мноТСствСнноС наслСдованиС Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстах. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ мноТСствСнноС наслСдованиС β€” это особый ΠΌΠ΅Ρ‚ΠΎΠ΄, основанный Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ структурС, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с использованиСм мноТСствСнного наслСдования, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ контСкстС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ Ρ†Π΅Π»ΠΎΠΌ, хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях мноТСствСнноС наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π² соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с мноТСствСнным наслСдованиСм, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ композиция ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ прСимущСств, Π½ΠΎ Π±Π΅Π· нСдостатков мноТСствСнного наслСдования.

ΠœΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с наслСдованиСм Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π₯отя наслСдованиС являСтся ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ программирования, Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Π½Π΅Π΅ распространСнных случаСв, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

ΠšΡ€ΡƒΠ³ΠΎΠ²ΠΎΠ΅ наслСдованиС

ЦикличСскоС наслСдованиС происходит, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ класса Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ цикличСскому ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ бСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с иСрархиями наслСдования.

Π‘Ρ€ΠΈΠ»Π»ΠΈΠ°Π½Ρ‚ΠΎΠ²ΠΎΠ΅ наслСдство

АлмазноС наслСдованиС происходит, ΠΊΠΎΠ³Π΄Π° подкласс наслСдуСтся ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ классов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ унаслСдованы нСсколько вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ свойства.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ…Ρ€ΡƒΠΏΠΊΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ…Ρ€ΡƒΠΏΠΊΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Π΅ послСдствия для подклассов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ унаслСдованы. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π°, казалось Π±Ρ‹, Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎ всСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π·Π°ΠΌΠ΅Π½Ρ‹ Лисков

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ замСщСния Лисков гласит, Ρ‡Ρ‚ΠΎ подклассы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ свои Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ классы Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для коррСктности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

ГСрмСтичная ΠΌΡƒΡ„Ρ‚Π°

Π₯отя тСсная связь являСтся распространСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ наслСдования, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅Π½Π΅Π΅ распространСнными способами. НапримСр, подклассы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ слоТности ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ошибкам.

ДопустимыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования наслСдования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π”Π°, Ρƒ использования наслСдования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ нСдостатки, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ наслСдованиС β€” это основная концСпция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сцСнариСв, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π² Π½Π°ΡˆΠΈΡ… интСрСсах. Но ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° для этого Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ допустимы ΠΏΡ€ΠΈ использовании наслСдования.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°

НаслСдованиС β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ классы Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ классами. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс наслСдуСт всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои собствСнныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ унаслСдованныС. Π’ΠΎΡ‚ нСсколько способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°.

  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ дублирования: НаслСдованиС позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования ΠΊΠΎΠ΄Π°, опрСдСляя ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π° Π·Π°Ρ‚Π΅ΠΌ наслСдуя ΠΈΡ… Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классах. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы автоматичСски ΠΈΠΌΠ΅ΡŽΡ‚ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: опрСдСляя Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ±Ρ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ всСх ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π° ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ: НаслСдованиС ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, позволяя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ связанных классов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс наслСдуСтся ΠΎΡ‚ своСго родитСля. Π­Ρ‚ΠΎ создаСт Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ взаимосвязь ΠΌΠ΅ΠΆΠ΄Ρƒ классами, облСгчая ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ нСобходимости.
  • ΠŸΠΎΠΎΡ‰Ρ€ΡΡ‚ΡŒ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ: НаслСдованиС поощряСт ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, отдСляя Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ интСрфСйса. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ интСрфСйс, Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π΅ затрагивая интСрфСйс, Ρ‡Ρ‚ΠΎ способствуСт гибкости ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию.
  • Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: НаслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, прСдоставляя структуру ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ усилия, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° создании Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с нуля.

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ являСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… классов Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π±Π΅Π· нСобходимости слоТных условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ².

НаслСдованиС β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… классов Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ часто приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ нас ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ характСристикам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для написания Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

  1. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°: позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ ​​в Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах. Рассматривая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… классов Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ классу, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ спСциализированный ΠΊΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  2. Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² свой ΠΊΠΎΠ΄ Π±Π΅Π· нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСмах, Π³Π΄Π΅ трСбования ΠΌΠΎΠ³ΡƒΡ‚ часто ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.
  3. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ связанных классов с ΠΎΠ±Ρ‰ΠΈΠΌ интСрфСйсом. Π­Ρ‚ΠΎΡ‚ интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ интСрфСйс, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  4. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ: БпособствуСт инкапсуляции, отдСляя Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ интСрфСйса. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса, Π½Π΅ затрагивая ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с классом.
  5. Π‘ΠΎΠ»Π΅Π΅ чистый ΠΊΠΎΠ΄: ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π±ΠΎΠ»Π΅Π΅ чистому ΠΊΠΎΠ΄Ρƒ Π·Π° счСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ количСства условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ‚ΠΈΠΏΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π² ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π° с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ обслуТивания ΠΊΠΎΠ΄Π°

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ систСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ транспортных срСдств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΠΈ ΠΈ ΠΌΠΎΡ‚ΠΎΡ†ΠΈΠΊΠ»Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ транспортного срСдства ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ модСль, Π³ΠΎΠ΄ выпуска ΠΈ Ρ†Π²Π΅Ρ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС для создания Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса с ΠΈΠΌΠ΅Π½Π΅ΠΌ 9.0121 ВранспортноС срСдство , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ создаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° транспортного срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ свои собствСнныС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наслСдованиС для создания класса Bicycle , ΠΌΡ‹ смогли ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ повСдСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² классС Vehicle , ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ повСдСния, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для вСлосипСдов. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ экономит врСмя Π½Π° написаниС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ обслуТиваниС систСмы с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НапримСр, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ start для всСх транспортных срСдств Π² систСмС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ внСсти ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² класс Vehicle , ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски унаслСдовано всСми ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ классами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Bicycle . Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ display_info Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для вСлосипСдов, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ внСсти измСнСния Π² класс Bicycle , Π½Π΅ затрагивая ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ транспортных срСдств.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ задСйствованы нСсколько Ρ‚ΠΈΠΏΠΎΠ² сотрудников, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ сотрудники, сотрудники, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь, ΠΈ подрядчики. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ сотрудников ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ имя ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС для создания Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса с ΠΈΠΌΠ΅Π½Π΅ΠΌ 9.0121 Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния, Π° Π·Π°Ρ‚Π΅ΠΌ создаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° сотрудников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ свои собствСнныС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ сотрудников, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стаТСров. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс с нуля, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π‘Ρ‚Π°ΠΆΠ΅Ρ€ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ класса Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ ΠΈ добавляСт свои собствСнныС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π‘Ρ‚Π°ΠΆΠ΅Ρ€ класс:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наслСдованиС для создания класса Π‘Ρ‚Π°ΠΆΠ΅Ρ€ , ΠΌΡ‹ смогли ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² классС Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ , ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ повСдСния, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для стаТСров. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ простой Π² обслуТивании с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ сотрудников ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный класс ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ затрагивая ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ сотрудников.

БпСциализация

БпСциализация Π² наслСдовании относится ΠΊ процСссу создания подкласса, Π±ΠΎΠ»Π΅Π΅ спСцифичного, Ρ‡Π΅ΠΌ супСркласс, ΠΏΡƒΡ‚Π΅ΠΌ добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ….

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, спСциализация наслСдования позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ спСциализированной вСрсиСй ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ функциями. Подкласс наслСдуСт всС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ супСркласса, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ особСнности. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ избыточности Π·Π° счСт создания ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ связанных классов. БупСркласс прСдоставляСт ΠΎΠ±Ρ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ подкласс прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ использования.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования спСциализации Π² наслСдовании Π² C# являСтся созданиС ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов для прСдставлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² транспортных срСдств.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса «ВранспортноС срСдство», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх транспортных срСдств, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«ΠœΠ°Ρ€ΠΊΠ°Β», «МодСль», Β«Π“ΠΎΠ΄Β», «ОбъСм двигатСля», Β«Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°Β», ΠΈ Ρ‚. Π΄.

Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ спСциализированныС классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ класса Β«ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΒ» ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои собствСнныС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ «ВранспортноС срСдство» ΠΈ добавляСт Ρ‚Π°ΠΊΠΈΠ΅ свойства, ΠΊΠ°ΠΊ Β«ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π΄Π²Π΅Ρ€Π΅ΠΉΒ», Β«Π’ΠΈΠΏ трансмиссии», Β«Π’ΠΈΠΏ ΠΏΡ€ΠΈΠ²ΠΎΠ΄Π°Β» ΠΈ Ρ‚. Π΄. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Π“Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ «ВранспортноС срСдство» ΠΈ добавляСт Ρ‚Π°ΠΊΠΈΠ΅ свойства, ΠΊΠ°ΠΊ «ПолСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Β», Β«Π’ΠΎΠΊΠΈΠ½Π³-ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΒ», Β«TruckBedLengthΒ» ΠΈ Ρ‚. Π΄.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ класс Β«ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΒ» прСдоставляСт ΠΎΠ±Ρ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для всСх Ρ‚ΠΈΠΏΠΎΠ² транспортных срСдств, Π° классы Β«ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΒ» ΠΈ Β«Π“Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΒ» Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ эти свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ свои собствСнныС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ спСциализированныС классы, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² транспортных срСдств, ΠΏΡ€ΠΈ этом ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ ΠΈ избСгая избыточности.

РСзюмС

Π’ Ρ†Π΅Π»ΠΎΠΌ, хотя наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ инструмСнтом Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях, Π΅Π³ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ остороТно ΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… нСдостатков. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ композиция ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ подходящими Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ…

Β 

Бостав ΠΏΡ€ΠΎΡ‚ΠΈΠ² наслСдования

Бостав ΠΏΡ€ΠΎΡ‚ΠΈΠ² наслСдования относится ΠΊ Π΄Π²ΡƒΠΌ основным понятиям Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ООП). Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ООП, ΠΈ ΠΎΠ±Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя классами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄.

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈ наслСдованиС относятся ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ каТдая ΠΈΠ· этих ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ программистам ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ β€” это использованиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с соблюдСниСм ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° β€” это основная продуктивная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ИВ, которая достигаСтся ΠΏΡƒΡ‚Π΅ΠΌ установлСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² посрСдством ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ наслСдования.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ наслСдованиСм ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ классы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΊΠΎΠ΄Π΅ наслСдования тСсно связаны, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π΅ слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈΠ»ΠΈ супСркласса ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ измСнСнию подкласса ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ ваш ΠΊΠΎΠ΄.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ классы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ слабо связаны, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ, поэтому ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ это Π»ΡƒΡ‡ΡˆΠ΅ наслСдования, Π½ΠΎ это Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эти Π΄Π²Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСимущСства использования ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с наслСдованиСм.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ наслСдованиС?

НаслСдованиС, наряду с абстракциСй, инкапсуляциСй ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ, являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… основных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

‍

‍

НаслСдованиС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ класс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ своСго супСркласса.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· абстрактного класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса ΠΈ Ρ‚. Π΄., Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов Π΄ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ наслСдования ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с сСмСйной Π»ΠΈΠ½ΠΈΠ΅ΠΉ. Π Π΅Π±Π΅Π½ΠΎΠΊ наслСдуСт характСристики ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ «являСтся» ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ классу.

‍

‍

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ наслСдования;

  • Samsung β€” это мобильноС устройство.
  • Samsung Galaxy S22 являСтся наслСдством Samsung.

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ наслСдования β€” это способ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π» написан Π½Π° языкС программирования Java. Π’ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Samsung являСтся подклассом Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Mobile.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Mobile, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Samsung, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Samsung, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Samsung S22. Π˜Ρ‚Π°ΠΊ, интСрфСйс ΠΈ рСализация Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Mobile Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ подклассом Samsung.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ извСстСн ΠΊΠ°ΠΊ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠ΅ наслСдованиС, ΠΈ здСсь прСдставлСны Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ наслСдования;

‍

‍

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° наслСдования:
  • ΠžΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Π±Π΅Π· нСобходимости Π΅Π³ΠΎ копирования
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ модСль Π½Π° простыС ΠΈ доступныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ композиция?

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ β€” это Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° наслСдованию классов, которая слуТит Π΄Ρ€ΡƒΠ³ΠΈΠΌ цСлям. По ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΒ».

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС Ρ‚ΠΈΠΏΡ‹, комбинируя ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ характСристики Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ².

Π’ классС, созданном с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π΅ΡΡ‚ΡŒ составная сторона, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π½Π°Π±ΠΎΡ€ экзСмпляров ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ составная сторона, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой экзСмпляры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ составной класс.

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ содСрТащийся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· сущСствования Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

‍

‍

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ композиция Π² Java?

ΠžΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚;

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ β€” это способ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Β«ΠΈΠΌΠ΅Π΅Ρ‚-Π°Β». ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ достигаСтся Π·Π° счСт использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра, которая ссылаСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π˜Ρ‚Π°ΠΊ, композиция β€” это процСсс объСдинСния многочислСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ экзСмпляр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ»ΠΈ всС свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° счСт использования Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€;

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создаСм класс ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «РСдкая фотография», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ создатСлях ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Π°Π²Ρ‚ΠΎΡ€, Π΄Π°Ρ‚Π° создания ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ создадим Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Альбом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ссылку Π½Π° список Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Π’ альбом ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ многочислСнныС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли альбом Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½, всС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π² этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ альбомС Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Ρ‹. Π‘Π΅Π· альбома изобраТСния Π² этом сцСнарии Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹.

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ альбома ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΡ… взаимосвязь.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ
  • МСньшС зависимостСй, Ρ‡Π΅ΠΌ наслСдованиС
  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ запускС, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ;

НаслСдованиС :

  1. Один ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ характСристики ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
  2. НаслСдованиС классов опрСдСляСтся Π²ΠΎ врСмя выполнСния
  3. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ ΠΊΠ°ΠΊ общСдоступныС, Ρ‚Π°ΠΊ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы
  4. НСт контроля доступа
  5. Часто Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ

Бостав:

  1. ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ динамичСски Π²ΠΎ врСмя выполнСния.
  3. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ Π½Π΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ — Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ интСрфСйсы.
  4. Доступ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½
  5. НС Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² наслСдования

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ наслСдовании Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΡ€ программирования Π½Π°Ρ‡Π°Π» Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этих Π΄Π²ΡƒΡ… концСпциях ΠΊΠ°ΠΊ ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°Ρ…. Как ΠΈ всС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΈ компромиссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ достаточно проста ΠΈ понятна. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, состоит ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, собака с Π½ΠΎΠ³Π°ΠΌΠΈ ΠΈ хвостом, ΠΏΠ΅ΠΉΠ·Π°ΠΆ с ΠΎΠΊΠ΅Π°Π½ΠΎΠΌ ΠΈ Π½Π΅Π±ΠΎΠΌ ΠΈ Ρ‚. Π΄. ЦСль ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· частСй ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅.

НаслСдованиС, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, являСтся абстракциСй. Π­Ρ‚ΠΎ простоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ быстро ΡΡ‚Π°Ρ‚ΡŒ слоТным ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ свободно. ЦСль наслСдования Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ†Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½Π° слуТит, сСмантику ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ.

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° наслСдования

НаслСдованиС создаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ сСмантику Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классификаций. УпорядочиваниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΡ… ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° связанных Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΡ‹. Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° класса Π² основном создаСтся Π² Π΅Π³ΠΎ интСрфСйсС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€Π΅ сообщСний, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

Но Ρ‡Π°ΡΡ‚ΡŒ сСмантики Ρ‚Π°ΠΊΠΆΠ΅ присутствуСт Π² Π½Π°Π±ΠΎΡ€Π΅ сообщСний, отправляСмых классом. ΠŸΡ€ΠΈ наслСдовании ΠΎΡ‚ класса Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΎ владСния всСми сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс отправляСт ΠΎΡ‚ вашСго ΠΈΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, подкласс ΠΎΡ‡Π΅Π½ΡŒ тСсно связан с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом.

Π’ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ это Π½Π΅ Ρ‚Π°ΠΊ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ подкласс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ экзСмпляр Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ мноТСства ΠΎΡ‚ всСго гСнСалогичСского Π΄Ρ€Π΅Π²Π°.

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° наслСдования

НаслСдованиС создаСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ ΠΏΡƒΡ‚Π΅ΠΌ кодирования ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΉ Π² подклассах. Подкласс наслСдуСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса вмСстС с Π΅Π³ΠΎ интСрфСйсом.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктам Π² Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… подклассах ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π²ΠΎ всСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

НаиболСС распространСнноС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠ΅ использованиС наслСдования β€” Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ваши ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, наслСдованиС сэкономит Π²Π°ΠΌ массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь интСрфСйс ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

Однако, Ссли подкласс удаляСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сущСствуСт Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, наслСдованиС Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Π½ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· Π½Π΅Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мысли

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈ наслСдованиС β€” это Π½Π΅ Ρ‡Π΅Ρ€Π½ΠΎ-бСлая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π‘Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½, ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, основноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΈ наслСдованиСм Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *