JavaRush/Java Π±Π»ΠΎΠ³/Java Developer/ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°
Автор
Milan Vucic
Π Π΅ΠΏΠ΅Ρ‚ΠΈΡ‚ΠΎΡ€ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Codementor.io

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Java Developer
участников
ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Ρ€ΠΈΡŽ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ООП. На этом занятии ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ΅. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° - 1ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΌ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚. Π”Π°Π²Π°ΠΉ рассмотрим это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. НачнСм с ΠΏΠ΅Ρ€Π²ΠΎΠΉ части: Β«Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏΒ». Как Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈ этом Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅? Π—Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странно :/ На самом Π΄Π΅Π»Π΅ всС просто. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, такая ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ использовании наслСдования. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ простой Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс Cat с СдинствСнным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ run() β€” Β«Π±Π΅ΠΆΠ°Ρ‚ΡŒΒ»:
public class Cat {

   public void run() {
       System.out.println("Π‘Π΅Π³!");
   }
}
А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ создадим Ρ‚Ρ€ΠΈ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Cat: Lion, Tiger ΠΈ Cheetah, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ льва, Ρ‚ΠΈΠ³Ρ€Π° ΠΈ Π³Π΅ΠΏΠ°Ρ€Π΄Π°.
public class Lion extends Cat {

   @Override
   public void run() {
       System.out.println("Π›Π΅Π² Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 80 ΠΊΠΌ/Ρ‡");
   }
}

public class Tiger extends Cat {

   @Override
   public void run() {
       System.out.println("Π’ΠΈΠ³Ρ€ Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 60 ΠΊΠΌ/Ρ‡");
   }
}

public class Cheetah extends Cat {

   @Override
   public void run() {
       System.out.println("Π“Π΅ΠΏΠ°Ρ€Π΄ Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 120 ΠΊΠΌ/Ρ‡");
   }
}
Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ 3 класса. Π”Π°Π²Π°ΠΉ смодСлируСм ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ смоТСм Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ класс. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π½Π°ΡˆΠΈΡ… ΠΊΠΎΡ‚ΠΎΠ² Π·Π°Π±ΠΎΠ»Π΅Π», ΠΈ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π΄ΠΎΠΊΡ‚ΠΎΡ€Π° Айболита. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Aibolit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ способСн Π»Π΅Ρ‡ΠΈΡ‚ΡŒ ΠΈ львов, ΠΈ Ρ‚ΠΈΠ³Ρ€ΠΎΠ², ΠΈ Π³Π΅ΠΏΠ°Ρ€Π΄ΠΎΠ².
public class Aibolit {

   public void healLion(Lion lion) {

       System.out.println("Π›Π΅Π² Π·Π΄ΠΎΡ€ΠΎΠ²!");
   }

   public void healTiger(Tiger tiger) {

       System.out.println("Π’ΠΈΠ³Ρ€ Π·Π΄ΠΎΡ€ΠΎΠ²!");
   }

   public void healCheetah(Cheetah cheetah) {

       System.out.println("Π“Π΅ΠΏΠ°Ρ€Π΄ Π·Π΄ΠΎΡ€ΠΎΠ²!");
   }
}
Казалось Π±Ρ‹, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° β€” класс написан ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. Но Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ? БСйчас Ρƒ нас всСго 3 Π²ΠΈΠ΄Π°: Π»ΡŒΠ²Ρ‹, Ρ‚ΠΈΠ³Ρ€Ρ‹, ΠΈ Π³Π΅ΠΏΠ°Ρ€Π΄Ρ‹. Но Π² ΠΌΠΈΡ€Π΅ сущСствуСт большС 40 Π²ΠΈΠ΄ΠΎΠ² кошСк. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы для ΠΌΠ°Π½ΡƒΠ»ΠΎΠ², ягуаров, ΠΌΠ΅ΠΉΠ½-ΠΊΡƒΠ½ΠΎΠ², Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… кошСк ΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° - 2Π‘Π°ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Π²ΠΎΡ‚ Π² класс Aibolit придСтся постоянно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для лСчСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° кошСк, ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½ разрастСтся Π΄ΠΎ Π½Π΅Π²ΠΈΠ΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π—Π΄Π΅ΡΡŒ ΠΈ проявляСтся свойство ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° β€” Β«Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏΒ». Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ бСсчислСнноС количСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ β€” Π»Π΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΡˆΠΊΡƒ. Достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для всСх случаСв сразу:
public class Aibolit {

   public void healCat(Cat cat) {

       System.out.println("ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!");
   }
}
Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ healCat() ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Lion, ΠΈ Tiger ΠΈ Cheetah β€” ΠΎΠ½ΠΈ всС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Cat:
public class Main {

   public static void main(String[] args) {

       Aibolit aibolit = new Aibolit();

       Lion simba = new Lion();
       Tiger sherekhan = new Tiger();
       Cheetah chester = new Cheetah();

       aibolit.healCat(simba);
       aibolit.healCat(sherekhan);
       aibolit.healCat(chester);
   }
}
Π’Ρ‹Π²ΠΎΠ΄ Π² консоль:

ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
Π’ΠΎΡ‚ Ρ‚Π°ΠΊ наш класс Айболит ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉ разбСрСмся со Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ: Β«ΠΏΡ€ΠΈ этом ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΌ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚Β». Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ всС просто. Π’ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ всС кошки Π±Π΅Π³Π°ΡŽΡ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρƒ Π½ΠΈΡ… различаСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π±Π΅Π³Π°. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΡˆΠΈΡ… Ρ‚Ρ€Π΅Ρ… ΠΏΠΈΡ‚ΠΎΠΌΡ†Π΅Π² Π³Π΅ΠΏΠ°Ρ€Π΄ β€” самый быстрый, Π° Ρ‚ΠΈΠ³Ρ€ ΠΈ Π»Π΅Π² Π±Π΅Π³Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρƒ Π½ΠΈΡ… отличаСтся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½. Он ΠΏΡ€ΠΈ этом Π΅Ρ‰Π΅ позволяСт Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ± ΠΈΡ… отличиях ΠΈ сохраняСт спСцифичСскоС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Допустим, послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выздоровлСния наши ΠΊΠΎΡ‚Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π° радостях Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ±Π΅Π³Π°Ρ‚ΡŒ. Π”ΠΎΠ±Π°Π²ΠΈΠΌ это Π² наш класс Aibolit:
public class Aibolit {

   public void healCat(Cat cat) {

       System.out.println("ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!");
       cat.run();
   }
}
ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ для лСчСния Ρ‚Ρ€Π΅Ρ… Π·Π²Π΅Ρ€Π΅ΠΉ:
public static void main(String[] args) {

   Aibolit aibolit = new Aibolit();

   Lion simba = new Lion();
   Tiger sherekhan = new Tiger();
   Cheetah chester = new Cheetah();

   aibolit.healCat(simba);
   aibolit.healCat(sherekhan);
   aibolit.healCat(chester);
}
И Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
Π›Π΅Π² Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 80 ΠΊΠΌ/Ρ‡
ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
Π’ΠΈΠ³Ρ€ Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 60 ΠΊΠΌ/Ρ‡
ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²!
Π“Π΅ΠΏΠ°Ρ€Π΄ Π±Π΅ΠΆΠΈΡ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 120 ΠΊΠΌ/Ρ‡
Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ наглядно Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ спСцифичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ, хотя ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ всСх Ρ‚Ρ€ΠΎΠΈΡ… Π·Π²Π΅Ρ€Π΅ΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄, Β«ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠ²Β» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎ Cat. Благодаря ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΡƒ Java прСкрасно ΠΏΠΎΠΌΠ½ΠΈΡ‚, Ρ‡Ρ‚ΠΎ это Π½Π΅ просто Ρ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΊΠΎΡ‚Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π»Π΅Π², Ρ‚ΠΈΠ³Ρ€ ΠΈ Π³Π΅ΠΏΠ°Ρ€Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Π³Π°ΡŽΡ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° β€” Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Когда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» β€” Π»ΡŒΠ²Ρ‹, Ρ‚ΠΈΠ³Ρ€Ρ‹ ΠΈ Π³Π΅ΠΏΠ°Ρ€Π΄Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ просто Π² Β«ΠΊΠΎΡ‚ΠΎΠ²Β». ВсС ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Π΅, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях β€” ΠΊΠΎΡ‚ Π΅ΡΡ‚ΡŒ ΠΊΠΎΡ‚, Π±Π΅Π· Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ ΠΎΠ½ относится:) Π’ΠΎΡ‚ Ρ‚Π΅Π±Π΅ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Когда ΠΆΠ΅ это Β«ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Β» Π½Π΅ трСбуСтся, ΠΈ Π½Π°ΠΌ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρƒ Π²ΠΈΠ΄ΠΎΠ² ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΎΡΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΏΠΎ-своСму. Благодаря ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΡƒ, Ρ‚Ρ‹ создаСшь Π΅Π΄ΠΈΠ½Ρ‹ΠΉ интСрфСйс (Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° классов. Π—Π° счСт этого сниТаСтся ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если Π±Ρ‹ ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄ΠΎ 40 Π²ΠΈΠ΄ΠΎΠ² кошСк, Ρƒ нас всС Ρ€Π°Π²Π½ΠΎ сохранился Π±Ρ‹ максимально простой интСрфСйс β€” ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ run() для всСх 40 кошСк.
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (140)
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
{Java_Shark}
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 19
25 апрСля, 15:26
кошки Π΅ΡΡ‚ΡŒ кошки, всС Π»ΡŽΠ±ΡΡ‚ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ)))
Π ΠΎΠΌΠ°Π½
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 17
10 дСкабря 2023, 15:46
ΠšΡ€ΡƒΡ‚ΠΎ, спасибо! ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмсто "ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²" Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΎ "sherekhan Π·Π΄ΠΎΡ€ΠΎΠ²"
Anonymous #3361169
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 47
1 дСкабря 2023, 03:42
πŸ‘
Denis Gritsay
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 37
19 октября 2023, 20:06
ИМΠ₯О Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‚ΡƒΡ‚ это - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° опрСдСляСтся ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ наслСдования классов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠšΡΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π›ΠΈΠΎΠ½ ΠΈΠ½ΠΎΠΉ ....
Николай
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 20
14 сСнтября 2023, 16:27
классная аналогия!
ΠŸΠ΅Ρ‚Ρ€ΠΎ ΠŸΡƒΠΌΠΏΠΈΠ½Π΅Ρ†ΡŒ
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 48
Expert
21 августа 2023, 14:22
Nice article, relaxing video
chess.rekrut
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 25
21 августа 2023, 12:00
easy
Alexander Rozenberg
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 32
25 июля 2023, 13:34
fine
24 июля 2023, 21:02
Благодаря этой Π»Π΅ΠΊΡ†ΠΈΠΈ задумался: Π° Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ классы с малСнькой Π±ΡƒΠΊΠ²Ρ‹, Π° ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Ρ‹ с большой? Π’Π΅Π΄ΡŒ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΡ‹ пишСм "Π»Π΅Π²" с малСнькой Π±ΡƒΠΊΠ²Ρ‹, Π° "Π‘ΠΈΠΌΠ±Π°" с большой Π° Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚
27 июля 2023, 12:45
Π­Ρ‚ΠΎ ΠΆΠ΅ гСниально!
No Name
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 32
25 июня 2023, 12:45
+ ΡΡ‚Π°Ρ‚ΡŒΡ Π² ΠΊΠΎΠΏΠΈΠ»ΠΊΠ΅