JavaRush/Java Π±Π»ΠΎΠ³/Random/ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #95. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСд...

ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #95. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования Π² Java

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Random
участников
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: FreeCodeCamp Java β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСгодня. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π΅ зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Java-прилоТСния Π½Π° всСх Ρ‚ΠΈΠΏΠ°Ρ… устройств ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ, это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты. ВаТная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Java, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹, β€” это наслСдованиС классов. НаслСдованиС позволяСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, облСгчая ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС классов. Когда Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π» протСстирован ΠΈ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½, ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния становится ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹ΠΌ. ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #95. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования Π² Java - 1Π₯отя тСорСтичСски это простая концСпция, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ наслСдования Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внимания ΠΊ дСталям. ОсобСнно Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ мноТСствСнного наслСдования, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс наслСдуСт свойства ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов. Java ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π΅Ρ‚ мноТСствСнныС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ наслСдования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько способов Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ эффСктов, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с мноТСствСнным наслСдованиСм ΠΈ обсудим Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ кодирования Π½Π° Java.

ВСрминология наслСдования

Иногда, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ программистом, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для ΠΎΠ±Ρ‰ΠΈΡ… ошибок ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎ нСобходимая Ρ‡Π°ΡΡ‚ΡŒ бСзопасного ΠΈ ΡƒΠΌΠ½ΠΎΠ³ΠΎ кодирования. Одна ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ связана с мноТСствСнным наслСдованиСм (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π΅Π³ΠΎ отсутствиСм) Π² Java. ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #95. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования Π² Java - 2Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ наслСдованиС Π² Java, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ наслСдования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП).
  • ΠšΠ»Π°ΡΡΡ‹ β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ структура шаблона Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках программирования. Класс опрСдСляСт ΠΎΠ±Ρ‰ΠΈΠ΅ свойства для Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  • Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс: Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы ΠΈΠ»ΠΈ супСрклассы. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс β€” это Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ классу. Он допускаСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов.
  • Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс: Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ подклассом, Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс наслСдуСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса. Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы β€” это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы.
  • НаслСдованиС: ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классами.

Π’ΠΈΠΏΡ‹ наслСдования ООП

БСгодня ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мноТСство популярных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Java, C ++ , JavaScript, Python, PHP, Ruby ΠΈ Perl. Π₯отя наслСдованиС являСтся ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ для этих языков ООП, Π½Π΅ всС Ρ‚ΠΈΠΏΡ‹ наслСдования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих языков. ΠšΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ наслСдования ΠΈ ограничСния Π½Π° наслСдованиС Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. Π§Π΅ΠΌ большС Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ наслСдовании, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ эффСктивным Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π²Ρ‹ станСтС. Π’ΠΈΠΏΡ‹ наслСдования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Java, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:
  • ΠžΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ наслСдованиС: ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс наслСдуСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ СдинствСнного Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.
  • ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ наслСдованиС: это многоуровнСвая Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ наслСдования. ΠŸΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ наслСдовании Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² качСствС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов. ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ β€” Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ Π½Π΅ выходят Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ мноТСствСнном наслСдовании. Π’ этом случаС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ со всСх ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π²Ρ‹ΡˆΠ΅.
  • Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ наслСдованиС: ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ мноТСствСнного наслСдования. Π’ иСрархичСском наслСдовании СдинствСнный Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ Π½Π°Π΄ Π½ΠΈΠΌ, ΠΎΠ½ развСтвляСтся Π²Π½ΠΈΠ·Ρƒ.
  • Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠ΅ наслСдованиС: ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠ΅ наслСдованиС прСдставляСт собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² наслСдования.
Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ наслСдования, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚.
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС: ΠΏΡ€ΠΈ мноТСствСнном наслСдовании Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π₯отя Java ΠΈ JavaScript Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ мноТСствСнноС наслСдованиС, Ρ‚Π°ΠΊΠΈΠ΅ языки ООП, ΠΊΠ°ΠΊ C ++, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚.
  • ΠœΠ½ΠΎΠ³ΠΎΠΏΡƒΡ‚Π΅Π²ΠΎΠ΅ наслСдованиС: Π³ΠΈΠ±Ρ€ΠΈΠ΄ мноТСствСнного, ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΠΈ иСрархичСского наслСдования, ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡƒΡ‚Π΅Π²ΠΎΠΌ наслСдовании Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс наслСдуСт свои характСристики ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡƒΡ‚Π΅Π²ΠΎΠ΅ наслСдованиС основано Π½Π° мноТСствСнном наслСдовании, Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ использованиС.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° мноТСствСнного наслСдования Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСоднозначности Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классах. Π’ ΠΎΠ±Π·ΠΎΡ€Π½ΠΎΠΌ тСхничСском Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ 1995 Π³ΠΎΠ΄Π° Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ Java ДТСймс Гослинг заявил, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с мноТСствСнным наслСдованиСм Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ создания Java. БлоТности, присущиС мноТСствСнному наслСдованию, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΎ Π²ΠΈΠ΄Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π°Π»ΠΌΠ°Π·Π°. Π’ Π·Π°Π΄Π°Ρ‡Π΅ β€œΡ€ΠΎΠΌΠ±β€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс A ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… класса B ΠΈ C; Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы B ΠΈ C Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ класс A. ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #95. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования Π² Java - 3Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс D, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΊΠ°ΠΊ класс B, Ρ‚Π°ΠΊ ΠΈ класс C. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ мноТСствСнноС наслСдованиС (D Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ B ΠΈ C), иСрархичСскоС наслСдованиС (B ΠΈ C Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ A) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ наслСдованиС (D Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ A, B ΠΈ C). Π’ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ€ΠΎΠΌΠ±Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы B ΠΈ C Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса A. И B, ΠΈ C ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ унаслСдованный ΠΌΠ΅Ρ‚ΠΎΠ΄. Но Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² B ΠΈ C ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс D наслСдуСт Π΄Π²Π° нСзависимых ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ‚ своих Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ B ΠΈ C. НСясно, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса D слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, поэтому Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄Π²ΡƒΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования ООП Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ нСоднозначности мноТСствСнного наслСдования.

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ мноТСствСнного наслСдования Π² Java

Π’ΠΎ, Ρ‡Ρ‚ΠΎ мноТСствСнноС наслСдованиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ бСсполСзно. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ситуаций, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ класс ΠΈΠΌΠ΅Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. Волько ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ Tesla Roadster, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΊΡƒΠΏΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° станСтС Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π•Π³ΠΎ тСхничСскиС характСристики основаны ΠΊΠ°ΠΊ Π½Π° классС спортивных Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ Π½Π° классС элСктромобилСй. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π’ Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· класса Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для обСспСчСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ класса ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Но Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ нСсколько классов Π² Java. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ этот язык справляСтся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ мноТСствСнного наслСдования? Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ структуры, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ интСрфСйсами. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ β€” это абстрактныС Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ классами. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ абстрактны, интСрфСйсы Π½Π΅ содСрТат ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… инструкций ΠΏΠΎ ΠΈΡ… повСдСнию. ВмСсто этого классы ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ повСдСния интСрфСйса. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… характСристик:
  • Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ классов, Π²Ρ‹ Π½Π΅ создаСтС экзСмпляры интСрфСйсов. ВмСсто этого классы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ интСрфСйсы.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ общСдоступныС опрСдСлСния констант ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсы, Π½ΠΎ Π½Π΅ классы.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ нСсколько интСрфСйсов, Π° классы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ нСсколько интСрфСйсов.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ эффСктивно ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€ΠΎΠΌΠ±Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ интСрфСйсов. Вспоминая, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ интСрфСйсы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсы ΠΈ любой класс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ трСбуСтся нСсколько характСристик наслСдования, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ нСсколько интСрфСйсов, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ классы ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ€ΠΎΠΌΠ±Π°ΠΌΠΈ. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»ΠΎ классами A, B ΠΈ C, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ становится интСрфСйсами A, B ΠΈ C. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ B ΠΈ C ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ интСрфСйс A, Π½ΠΎ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этих интСрфСйсов Π½Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ повСдСния. Класс D остаСтся классом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ повСдСния, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² интСрфСйсах B ΠΈ C. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅: класс D Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ интСрфСйсы B ΠΈ C. ВмСсто этого ΠΎΠ½ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ вас фактичСски Π½Π΅Ρ‚ мноТСствСнного наслСдования. ВмСсто этого Π²Ρ‹ просто пСрСосмыслили ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ПониманиС наслСдования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ эффСктивному Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ограничСния наслСдования ΠΈ встроСнный ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ Java для Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с мноТСствСнным наслСдованиСм. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ интСрфСйсы для воссоздания эффСктов мноТСствСнного наслСдования Π² Java, повысит Π²Π°ΡˆΡƒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ возмоТности Π½Π°ΠΉΠΌΠ°.
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (1)
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
7 октября 2021, 10:23
Ну Ρ‚.Π΅. Π² Java ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° мноТСствСнного наслСдования Π² классах Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½Π°, Π° Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° мноТСствСнноС наслСдованиС интСрфСйсов, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ совсСм Ρ‚ΠΎ ΠΈΠ»ΠΈ совсСм Π½Π΅ Ρ‚ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ этого ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° интСрфСйса Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π½ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΡƒΡŽ сигнатуру, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² классС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π° Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² классС для ΠΎΠ±ΠΎΠΈΡ… интСрфСйсов. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ±ΠΎΠΈΡ… интСрфСйсах Π΅ΡΡ‚ΡŒ рСализация этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π΅ эти Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ потСряв ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.