ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·Π½ΡΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΡΠ΅ΡΠ΅Π· ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΡΡΠ·ΠΎΠ²ΠΈΠΊ ΠΈΠ»ΠΈ ΠΠΎΠ½ΠΎΡΠ½ΡΠΉ_Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ Ρ Π½ΠΈΠΌΠΈ (ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ), Π½Π΅Π²Π·ΠΈΡΠ°Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π΄Π²Π°: ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΡΠ΅ΡΠ΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π°Π»Π΅Π΅.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (interface) — ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ Π½Π°Π±ΠΎΡ ΠΎΡΠΊΡΡΡΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎΠ± ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·Π½ΡΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ:
// ΠΈΠΌΠ΅Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±ΡΠΊΠ²Ρ I interface IDrivable { int ΠΡ
Π°ΡΡ (…); float ΠΠΎΠ²Π΅ΡΠ½ΡΡΡ (…); bool ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ (.);
}.
ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎ Π² Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: class Automobile: Π’ΡΠ°Π½ΡΠΏΠΎΡΡ, IDrivable {.
int ΠΡ
Π°ΡΡ (…) {);
float ΠΠΎΠ²Π΅ΡΠ½ΡΡΡ (…) {};
bool ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ (.) {};
// ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² …
}.
ΠΡΠ±ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IDrivable ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΡ
, ΠΊΠ°ΠΊ ΠΡΡΠ·ΠΎΠ²ΠΈΠΊ, ΠΠ²ΡΠΎΠΏΠΎΠ³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ»ΠΈ ΠΠ°ΡΠ΅Ρ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»ΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ Π½Π΅Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ, Π΅ΠΌΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π»ΠΈΡΡ ΡΠ°ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π·Π΄. 6.3.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΡΠ΅ΡΠ΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ²ΠΎΠΈΡ
Π±Π°Π·ΠΎΠ²ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ Π²ΠΈΠ΄ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Ρ. Π΅. ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ myAuto; // ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°! Π‘ΠΏΠΎΡΡΠΈΠ²Π½ΡΠΉ_Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ sportAuto = new Π‘ΠΏΠΎΡΡΠΈΠ²Π½ΡΠΉ_Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ();
// ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ, Ρ. ΠΊ. Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ myAuto = sportAuto;
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π±ΡΠ» ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΡΠ΅ΡΠ΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π·Π΄. 5.2.