Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ абстракция ΠΎΠΎΠΏ

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ абстракции ΠΈ интСрфСйсы

И Ρ‡Ρ‚ΠΎ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅?

Как Π² старом Π°Π½Π΅ΠΊΠ΄ΠΎΡ‚Π΅: ΠΏΡ€ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ просто ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈΠ±ΠΎ слоТно ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ΠœΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ аспСкт ООП просто.

Π—Π°Ρ‡Π΅ΠΌ это: ООП β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ соврСмСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Она ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π½Π΅ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ языкам, это скорСС способ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Если Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ООП, ваш ΠΊΠΎΠ΄ Π½Π° любом языкС Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‰Π΅, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠ΅Π΅ ΠΈ эффСктивнСС.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π΄Π²Π° слоТных понятия ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования: абстракции ΠΈ интСрфСйсы. Π­Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΡΡ‚ΡƒΠΏΠ΅Π½ΡŒ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ нСпостиТимого.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΈΠ· ООП

Абстракция

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ попросили Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ…, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ: ΠΏΡƒΡΡ‚ΡŒ это Π±ΡƒΠ΄ΡƒΡ‚ Π±Π°Π±ΡƒΡˆΠΊΠ°, ΠΌΠ°ΠΌΠ° ΠΈ ΠΏΠΎΠ΄Ρ€ΡƒΠ³Π°. Π‘Π°Π±ΡƒΡˆΠΊΠ° вспомнит ΠΏΡ€ΠΎ дисковыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΈ Ρ‚Ρ€ΡƒΠ±ΠΊΠΈ с Π²ΠΈΡ‚Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ. Мама расскаТСт ΠΏΡ€ΠΎ Ρ€Π°Π΄ΠΈΠΎΡ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Π±Π°Π·Π° ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ±ΠΊΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ всСй ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π΅, Π° ΠΏΠΎΠ΄Ρ€ΡƒΠ³Π° Π½Π°Ρ‡Π½Ρ‘Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ мобильник.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ рассказы Π±ΡƒΠ΄ΡƒΡ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Ρƒ Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ нСсколько ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ абстрактный Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, Ρ‚ΠΎ получится Ρ‚Π°ΠΊΠΎΠ΅ устройство с Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΌ, ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΠΎΠΌ ΠΈ срСдством Π½Π°Π±ΠΎΡ€Π° Π½ΠΎΠΌΠ΅Ρ€Π°.

Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ абстракция: ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ описываСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС сущСствСнныС Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹ для Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ нашСм случаС Π·Π°Π΄Π°Ρ‡Π° такая β€” ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊ для этой Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π°ΠΆΠ΅Π½, Π° способ связи Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° с ΡΠ΅Ρ‚ΡŒΡŽ β€” Π½Π΅Ρ‚. Устройство Π½Π°Π±ΠΎΡ€Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π²Π°ΠΆΠ½ΠΎ, Π° Ρ‚ΠΎ, какая мСлодия ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ β€” Π½Π΅Ρ‚.

🔥 Абстракция β€” это ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сосрСдотачиваСмся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сущСствСнных для Π·Π°Π΄Π°Ρ‡ΠΈ дСталях ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. Π’ ООП абстракция ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΡ‹ Π·Π°Π΄Π°Ρ‘ΠΌ минимальноС количСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»Π΅ΠΉ ΠΈ описаний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π½Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ. Π§Π΅ΠΌ мСньшС характСристик, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ абстракция, Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ характСристики ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ нСльзя.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с абстракциями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ интСрфСйсы.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΠ΅ устройство с Ρ‚Ρ€ΡƒΠ±ΠΊΠΎΠΉ, ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΠΎΠΌ, Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΌ ΠΈ срСдством Π½Π°Π±ΠΎΡ€Π° Π½ΠΎΠΌΠ΅Ρ€Π°. Но Ссли Π²Ρ‹ вспомнитС рассказы ΠΌΠ°ΠΌΡ‹, Π±Π°Π±ΡƒΡˆΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ€ΡƒΠ³ΠΈ, Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

Всё это β€” интСрфСйсы. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π΅ вникая Π² Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ устроСн Π²Π½ΡƒΡ‚Ρ€ΠΈ. Если Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с интСрфСйсом номСронабиратСля, Ρ‚ΠΎ Π²Π°ΠΌ всё Ρ€Π°Π²Π½ΠΎ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ диск, Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ физичСскиС ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° Ρ€Π°Π΄ΠΈΠΎΡ‚Ρ€ΡƒΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ Π΄Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ Π½Π° сСнсорный экран.

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

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ β€” это дСйствия Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, доступныС Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ (поэтому ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ).

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

БлоТная тСрминология

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, интСрфСйсы β€” это Π½Π΅ дСйствия, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. БСйчас объясним.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” это ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ дСйствия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

Из простых дСйствий ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это ΠΊΠΎΠ³Π΄Π° нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Β«ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ΡΡΒ» Π² Π½Π΅Ρ‡Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ΅. ΠœΡ‹ Π΄Π°Ρ‘ΠΌ этой склСйкС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ функция Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСктронного адрСса», которая состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

На языкС ООП Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, привязанныС ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½. По сути это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ склССнныС вмСстС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π˜Ρ‚ΠΎΠ³ΠΎ: ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это Π½Π°Π±ΠΎΡ€ простых дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ склСили Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ ΠΈ засунули Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Для Ρ‡Π΅Π³ΠΎ это всё

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

Если Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π»ΠΈ:

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Ρ‚Π°ΠΊ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ООП с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ (Ρ‡Π°ΡΡ‚ΡŒ 2)

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

Для этого я постарался Π½Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΆΠΈΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия ООП (класс, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, интСрфСйс, абстракция, инкапсуляция, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ).

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ посвящСна классам, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ интСрфСйсам.
Вторая Ρ‡Π°ΡΡ‚ΡŒ, прСдставлСнная Π½ΠΈΠΆΠ΅, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ наслСдованиС

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ

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

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

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ – это свойство систСмы, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Π½ΠΈΠΌΠΈ, Π² классС ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ
Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связана с понятиСм интСрфСйса класса. По сути, всё Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² интСрфСйс, инкапсулируСтся Π² классС.

Абстракция

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

АбстрагированиС – это способ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… характСристик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ· рассмотрСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅. БоотвСтствСнно, абстракция – это Π½Π°Π±ΠΎΡ€ всСх Ρ‚Π°ΠΊΠΈΡ… характСристик.

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

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

Π›ΡŽΠ±ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ воТдСнию Π½Π΅ ΠΈΠΌΠ΅Π»ΠΎ Π±Ρ‹ смысла, Ссли Π±Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Π½Π°ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, скаТСм, ВАЗ 2106 Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ВАЗ 2110 ΠΈΠ»ΠΈ BMW X3. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смог Π±Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСдаль Π³Π°Π·Π° находится Π»Π΅Π²Π΅Π΅ ΠΏΠ΅Π΄Π°Π»ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°, Π° вмСсто руля – дТойстик.

Всё Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ основныС элСмСнты управлСния автомобиля ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия. Π’ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π°Π»Π΅Π²ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€ΡƒΠ»ΡŒ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΌ Π³ΠΈΠ΄Ρ€ΠΎΡƒΡΠΈΠ»ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.
Если Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π½Π°Π΄ΠΎ Π΄ΠΎΠ΅Ρ…Π°Ρ‚ΡŒ с Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎ Π΄ΠΎΠΌΠ°, Ρ‚ΠΎ ΠΎΠ½ сядСт Π·Π° Ρ€ΡƒΠ»ΡŒ автомобиля ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ дСйствия, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏ автомобиля ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚. По сути, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ интСрфСйс, Π° Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡΡΡŒ ΠΎΡ‚ сущности автомобиля, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ с этим интСрфСйсом. Если Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ прСдстоит Π΅Ρ…Π°Ρ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΌΡƒ Π°Π²Ρ‚ΠΎΠ±Π°Π½Ρƒ, ΠΎΠ½, вСроятно Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ быстрый Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ с Π½ΠΈΠ·ΠΊΠΎΠΉ посадкой, Π° Ссли прСдстоит Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€Π°Π»ΡŒΠ½ΠΈΠΊΠ° Π² Π“ΠΎΡ€Π½ΠΎΠΌ АлтаС послС доТдя, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ УАЗ с армСйскими мостами. Но, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, интСрфСйс останСтся ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ.

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ – это свойство систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ интСрфСйсом Π±Π΅Π· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структурС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

НапримСр, Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π² классС, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: byte[] readBytes( int n );
ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· сокСта. Π’ классС, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ сокСт, Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ readBytes. Достаточно Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² вашСй систСмС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ достигнут.

ΠŸΡ€ΠΈ этом Π»ΠΎΠ³ΠΈΠΊΠ° систСмы ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΏΠΎ сСти. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ абстрагируСмся ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ спСциализации получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ интСрфСйса. ЕдинствСнноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ этом – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ readBytes.

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

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

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

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

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

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

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ старой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ дСйствия, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ‚ΡƒΠΌΠ°Π½ΠΎΠΊ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просто Π½Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Владислав Π ΠΎΠ΄ΠΈΠ½. Π’ настоящСС врСмя я являюсь Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ курса «АрхитСктор высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊΒ» Π² OTUS, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽ Π½Π° курсах, посвящСнных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ПО.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΊ старту занятий Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ курса «АрхитСктура ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования» я ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ авторский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

Π’ΠΎΠΎΠ±Ρ‰Π΅ устроСно всС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π΅ΡΡ‚ΡŒ само ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹. Из ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ GRASP (ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” SOLID ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹), ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ GoF. Из Π½ΠΈΡ… ΠΆΠ΅ слСдуСт ряд интСрСсных Π²Π΅Ρ‰Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, enterprise ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ гласит, Ρ‡Ρ‚ΠΎ Β«ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – это ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основной ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ являСтся понятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отоТдСствляСтся с ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ.Β»

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, систСма прСдставляСтся Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ трСмя cΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ (identity), состояниС (state) ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (behaviour).

БостояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это Π½Π°Π±ΠΎΡ€ всСх Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ПовСдСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это Π½Π°Π±ΠΎΡ€ всСх ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Java, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ идСнтичности опрСдСляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ equals.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡ… количСствС расходится. ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ‚Ρ€ΠΈ (старая школа программистов), ΠΊΡ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ (новая школа программистов):

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ

Π’ΠΎΠΏΡ€Π΅ΠΊΠΈ мнСнию ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠΎΠ±Π΅ΡΠ΅Π΄ΡƒΡŽΡ‰ΠΈΡ…ΡΡ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ собСсСдуСмых), инкапсуляция это Π½Π΅ Β«ΠΊΠΎΠ³Π΄Π° всС поля ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅Β». Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ проСктирования ПО, Π΅Π΅ слСды Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΈΠΊΡ€ΠΎ-, Π½ΠΎ ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ макропроСктирования.

НаучноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ гласит, Ρ‡Ρ‚ΠΎ Β«Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ – это ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ любой класс ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС – любая Ρ‡Π°ΡΡ‚ΡŒ систСмы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Β«Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик»: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠΈΠ»ΠΈ подсистСмы Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ интСрфСйс (Ρ‚.Π΅. список Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) ΠΈ Π½Π΅ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.Β»

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, получаСтся, Ρ‡Ρ‚ΠΎ Ссли класс A обращаСтся ΠΊ полям класса B Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Β«Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ информационная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΒ», Π° ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ класс A завязываСтся Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ устройство класса B, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство класса B ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ измСнСнию класса А. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, класс A Π½Π΅ просто Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с полями класса B, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с состояниСм класса Π’ Π»Π΅ΠΆΠΈΡ‚ Π² классС А, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Π’, это Π½Π΅ удастся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, вСдь Π±Π΅Π· кусочка класса А класс Π’ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСсполСзным, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ класс Π’ придСтся ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ вмСстС с классом А. Экстраполируя это Π½Π° всю систСму, получаСтся, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всю систСму Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ являСтся самым Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊ соТалСнию, ΠΌΠ°Π»ΠΎ ΠΊΠ΅ΠΌ интСрпрСтируСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Она позволяСт ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число связСй ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ подсистСмами ΠΈ, соотвСтствСнно, ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ классов ΠΈ подсистСм.

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

НаслСдованиС β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ класс ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ с сохранСниСм всСх свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса-ΠΏΡ€Π΅Π΄ΠΊΠ° (супСркласса), добавляя ΠΏΡ€ΠΈ нСобходимости Π½ΠΎΠ²Ρ‹Π΅ свойства ΠΈ
ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

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

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

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы – ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π² контСкстС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для класса – ΠΏΡ€Π΅Π΄ΠΊΠ°.

Π—Π° самым садистским ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ кроСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ языка программирования для Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° if’ΠΎΠ² ΠΈ switch’Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ООП с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ (Ρ‡Π°ΡΡ‚ΡŒ 1)

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

Для этого я постарался Π½Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΆΠΈΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия ООП (класс, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, интСрфСйс, абстракция, инкапсуляция, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ).

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ, прСдставлСнная Π½ΠΈΠΆΠ΅, посвящСна классам, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ интСрфСйсам.
Вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ наслСдованиС

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия ООП

Класс

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ, подвСску, Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΡ… Ρ„Π°Ρ€Ρ‹, 4 колСса, ΠΈ Ρ‚.Π΄. Π•Ρ‰Ρ‘ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ваш Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ ΡΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΈ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π·Π°Π΄Π½ΠΈΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ. И, Ρ‡Ρ‚ΠΎ самоС Π³Π»Π°Π²Π½ΠΎΠ΅, Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ взаимодСйствуСт Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ ΠΈ колёса, согласно ΠΊΠ°ΠΊΠΈΠΌ Π·Π°ΠΊΠΎΠ½Π°ΠΌ двиТСтся распрСдвал ΠΈ ΠΊΠΎΠ»Π΅Π½Π²Π°Π», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ устроСны Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Ρ‹. Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² своих знаниях ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

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

Класс – это способ описания сущности, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ состояниС ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, зависящСС ΠΎΡ‚ этого состояния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для взаимодСйствия с Π΄Π°Π½Π½ΠΎΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚).

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования класс ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ»Π΅ΠΉ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Ρ‡Π»Π΅Π½ΠΎΠ² класса) ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²).

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, класс являСтся слоТным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ нашСм случаС, класс Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ – Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Атрибутами класса Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ, подвСска, ΠΊΡƒΠ·ΠΎΠ², Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ колСса ΠΈ Ρ‚.Π΄. ΠœΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²Π΅Ρ€ΡŒΒ», Β«Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° пСдаль Π³Π°Π·Π°Β», Π° Ρ‚Π°ΠΊΠΆΠ΅ Β«Π·Π°ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ†ΠΈΡŽ Π±Π΅Π½Π·ΠΈΠ½Π° ΠΈΠ· Π±Π΅Π½Π·ΠΎΠ±Π°ΠΊΠ° Π² Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒΒ». ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° доступны для выполнСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам (Π² частности, классу Β«Π’ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΒ»). ПослСдний описываСт взаимодСйствия Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ Π½Π΅ доступСн ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π’ дальнСйшСм, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ слово Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΒ» ассоциируСтся с пасьянсом Β«ΠšΠΎΡΡ‹Π½ΠΊΠ°Β» ΠΈ Β«Microsoft WordΒ», ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Ρ‚Π΅Ρ… программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ваш класс, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ вас самих. Π§Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ класса, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ (экзСмпляр) – это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ класса, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ состояниС ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ опрСдСляСмоС классом.

Говоря простым языком, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с этими значСниями Π½Π° основС ΠΏΡ€Π°Π²ΠΈΠ», Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² классС. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли класс – это Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрактный Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ΠΈΠ· Β«ΠΌΠΈΡ€Π° ΠΈΠ΄Π΅ΠΉΒ», Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ – это ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, стоящий Ρƒ вас ΠΏΠΎΠ΄ ΠΎΠΊΠ½Π°ΠΌΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ

Когда ΠΌΡ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρƒ с ΠΊΠΎΡ„Π΅ ΠΈΠ»ΠΈ садимся Π·Π° Ρ€ΡƒΠ»ΡŒ, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ взаимодСйствиС с Π½ΠΈΠΌΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, взаимодСйствиС происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° элСмСнтов: Ρ‰Π΅Π»ΡŒ для ΠΏΡ€ΠΈΡ‘ΠΌΠΊΠΈ ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΊ, ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°ΠΏΠΈΡ‚ΠΊΠ° ΠΈ отсСк Π²Ρ‹Π΄Π°Ρ‡ΠΈ стакана Π² ΠΊΠΎΡ„Π΅ΠΉΠ½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π΅; Ρ€ΡƒΠ»ΡŒ, ΠΏΠ΅Π΄Π°Π»ΠΈ, Ρ€Ρ‹Ρ‡Π°Π³ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅. ВсСгда сущСствуСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов управлСния, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ – это Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса, доступных для использования Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйсом класса Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π°Π±ΠΎΡ€ всСх Π΅Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² совокупности с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². По сути, интСрфСйс спСцифицируСт класс, Ρ‡Ρ‘Ρ‚ΠΊΠΎ опрСдСляя всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ дСйствия Π½Π°Π΄ Π½ΠΈΠΌ.
Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ интСрфСйса ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ приборная панСль автомобиля, которая позволяСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости, Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°Ρ€, ΠΈ Ρ‚.ΠΏ. Π’ΠΎ Π΅ΡΡ‚ΡŒ всС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс (Π² нашСм случаС – Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ) ΠΏΡ€ΠΈ взаимодСйствии с Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ.

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

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП: инкапсуляция, наслСдованиС, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ

Contents

Абстракция [ ]

Абстра́кция β€” Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ это ΠΏΡ€ΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ характСристик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΎΡ‚ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Π΅Ρ‚ΠΊΠΎ опрСдСляя Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Основная идСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ способ использования составных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π±ΠΎΠ»Π΅Π΅ простых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ абстракция раздСляСт способ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π΅Ρ‘ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ высокого уровня с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня.

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

Абстракция Π΄Π°Π½Π½Ρ‹Ρ… β€” популярная ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π½Π΅Π²Π΅Ρ€Π½ΠΎ опрСдСляСмая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° программирования. Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ идСя состоит Π² Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ нСсущСствСнных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ характСристик сущСствСнных для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π΅Π΅ использования. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ «интСрфСйс», ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ описаниС всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ [1].

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Π΅ΠΎΡ€ΠΈΠΈ мноТСств, процСсс прСдставляСт собой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ для Π³Ρ€ΡƒΠΏΠΏΡ‹ подмноТСств своСго мноТСства. Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π—Π°ΠΊΠΎΠ½ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ содСрТаниСм ΠΈ объСмом понятия.

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ [ ]

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ β€” свойство программирования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ слоТности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ?), Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ посрСдством прСдоставляСмого интСрфСйса (ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‡Π»Π΅Π½ΠΎΠ²), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ спСцификация (интСрфСйс) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· этот интСрфСйс. РСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова: public.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. РСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов: private, protected, internal.))

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (наряду с абстракциСй, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ ΠΈ наслСдованиСм).

Π‘ΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ цСлСсообразно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Π°Ρ локализация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ нСобходимости Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ,

ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π² ΠΊΠΎΠ΄Π΅ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ измСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ послСдствий ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

НаслСдованиС [ ]

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

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, класс-наслСдник Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс). Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ класса-наслСдника Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ наслСдованиС: [ ]

Класс, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ наслСдованиС, называСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ (Π°Π½Π³Π». base class). ΠšΠ»Π°ΡΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ, наслСдниками ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ классами (Π°Π½Π³Π». derived class).

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ абстрактныС классы. Абстрактный класс β€” это класс, содСрТащий хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠ½ описан Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈΠΌΠ΅Π΅Ρ‚ поля, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для нСпосрСдствСнного создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ абстрактного класса ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов, наслСдованных ΠΎΡ‚ абстрактного. НапримСр, абстрактным классом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс «сотрудник Π²ΡƒΠ·Π°Β», ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ классы «аспирант», «профСссор» ΠΈ Ρ‚. Π΄. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ поля ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»Π΅ Β«Π³ΠΎΠ΄ роТдСния»), Ρ‚ΠΎ эти Ρ‡Π»Π΅Π½Ρ‹ класса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ описаны Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° основС классов «аспирант», «профСссор», Π½ΠΎ Π½Π΅Ρ‚ смысла ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° основС класса «сотрудник Π²ΡƒΠ·Π°Β».

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

ΠŸΡ€ΠΈ мноТСствСнном наслСдовании Ρƒ класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ°. Π’ этом случаС класс наслСдуСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ всСх ΠΏΡ€Π΅Π΄ΠΊΠΎΠ². Достоинства Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² большСй гибкости. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² C++. Из Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Python ΠΈ Π­ΠΉΡ„Π΅Π»ΡŒ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС поддСрТиваСтся Π² языкС UML.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС β€” ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ источник ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° наличия ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΏΡ€Π΅Π΄ΠΊΠ°Ρ…. Π’ языках, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ наслСдники C++ (Java, C# ΠΈ Π΄Ρ€.), ΠΎΡ‚ мноТСствСнного наслСдования Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ интСрфСйсов. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°. Однако, Ссли такая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ всС-Ρ‚Π°ΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°, Ρ‚ΠΎ, для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² использования наслСдованных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ видимости β€” Β«::Β» β€” для Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ родитСля.

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

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования (C#, Java, Delphi ΠΈ Π΄Ρ€.) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ класса-ΠΏΡ€Π΅Π΄ΠΊΠ° ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… интСрфСйсов ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ классом. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ позволяСт Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ мноТСствСнноС наслСдованиС β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ интСрфСйсов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ явно, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ наслСдовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов-ΠΏΡ€Π΅Π΄ΠΊΠΎΠ².

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

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΜΠ·ΠΌ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ спСцификациСй ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π―Π·Ρ‹ΠΊ программирования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, Ссли классы с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ спСцификациСй ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, рСализация класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² процСссС наслСдования[1].

ΠšΡ€Π°Ρ‚ΠΊΠΎ смысл ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π·ΠΎΠΉ: «Один интСрфСйс, мноТСство Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉΒ».

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (наряду с абстракциСй, инкапсуляциСй ΠΈ наслСдованиСм).

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ абстрактныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ коэффициСнт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°. ΠžΠ±Ρ‰ΠΈΠ΅ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² систСму, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ β€” интСрфСйс, класс. ΠžΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ внСшнСС ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Π€ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° [ ]

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Π’ случаС парамСтричСского ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°, функция рСализуСтся для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ функция Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ парамСтричСском ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ парамСтричСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Ρ‚ΠΈΠΏΡ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ [ ]

Если ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ влияСт Π½Π° нашС восприятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ парамСтричСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ влияСт Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ родствСнных классов, откладывая объявлСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Для Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ написания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° примСняСтся парамСтричСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, ΠΏΡ€ΠΈ этом Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹. [ ]

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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