ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ «ΡΠΈΠ³ΡΡΠ° Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Π΄ΠΎΠ»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΎΡΠ΅ΠΉ». Π’Π°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² «ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ», «ΡΠ»Π»ΠΈΠΏΡ», «ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ» ΠΈ Ρ. Π΄. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ, Ρ ΡΠ»Π»ΠΈΠΏΡΠ° ΠΎΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ, Ρ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΡΠΎΡΠΎΠ½Π°… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Ρ . Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ «ΠΊΡΡΠ³» ΠΈ «ΠΊΠΎΠ»ΡΡΠΎ» ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ring ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Disk Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ base (Ri). ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΅Π»Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° — Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
public Ring (double Ri, double ri): base (Ri) {rad = ri;}.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ»Π΅ rad (Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ protected) Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Disk Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
public Ring (double Ri, double ri) {base.rad = Ri; rad = ri;}.
ΠΠ½Π΅ΡΠ½Π΅ Π²ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Disk, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅:
'Disk' does not contain a constructor that takes '0' arguments.
(Disk Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ '0' Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²) Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ — Π΅ΡΠ»ΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΠΊΠ»Π°ΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ. ΠΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠΎΡΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. Π£ΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ· ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° (ΡΠΎΡΠ½Π΅Π΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ) ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ Disk ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Ρ ΠΎΡ ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΡΠ½ΡΡΡ. Π Π²ΠΎΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (overload). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (ΠΈΠ½Π°ΡΠ΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠΊΡΡΡΠΈΠ΅, hiding) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ). Π ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠ΅ΡΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ (virtual), ΠΈ ΡΠΎΠ³Π΄Π° ΠΏΡΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ (overriding) Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ.
Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ Π½Π΅Ρ.
ΠΡΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΡΠ½Π°Π±ΠΆΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ new. ΠΡΠΈ Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½ΠΎ Π²ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ (Warning). Π Π½Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎ ΠΎΠΏΠ»ΠΎΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠͺΠ°8Π΅.ΠΈΠΌΡ_ΠΌΠ΅ΡΠΎΠ΄Π°_Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ_ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ «ΡΠΈΠ³ΡΡΠ° Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Π΄ΠΎΠ»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΎΡΠ΅ΠΉ». Π’Π°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² «ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ», «ΡΠ»Π»ΠΈΠΏΡ», «ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ» ΠΈ Ρ. Π΄. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ, Ρ ΡΠ»Π»ΠΈΠΏΡΠ° ΠΎΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ, Ρ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΡΠΎΡΠΎΠ½Π° ΠΈ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Π°Ρ Π΅ΠΉ Π²ΡΡΠΎΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ.
// 1306.cs — ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ class Figure 11 Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ {.
protected double dx, dy; 11 ΡΠ°Π·ΠΌΠ΅ΡΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠ΅ΠΉ public void print ().
{
Console.WriteLine ('Ta6apnTbi: dx={0:f2), dy={l:f2}", dx, dy);
}
>
// ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ — ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ: class Rectangle: Figure {.
public Rectangle (double xi, double yi).
{ dx = xi; dy = yi; } public new void print ().
{
Console.Write («ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! «);
base.printQ;
} }
// ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ — ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ: class Triangle: Figure {.
public Triangle (double xi, double yi).
{ dx = xi; dy = yi; } public new void print ().
{
Console.Write («Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! «); base. printQ;
} }
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ print (), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ print () ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ print () Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
class Program.
{
static void MainQ.
{
Rectangle rec = new Rectangle (3.0, 4.0); rec. print ();
Triangle tre = new Triangle (5.0, 4.0); tre. print ();
Figure fig = new Figure (); fig. printQ;
>
>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! ΠΠ°Π±Π°ΡΠΈΡΡ: dx=3,00, dy=4,00.
Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! ΠΠ°Π±Π°ΡΠΈΡΡ: dx=5,00, dy=4,00.
ΠΠ°Π±Π°ΡΠΈΡΡ: dx=0,0, dy=0,0.
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ, ΡΡΠΎ Π² ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ, ΡΡΠΎΡ ΡΠ°ΠΊΡ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΡΡ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. Π‘ΡΡΠ»ΠΊΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠ° Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ (Π½Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ) ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Figure, Π°Π΄ΡΠ΅ΡΡΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Triangle, ΠΈ Rectangle (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 1307.cs).
static void MainQ.
{
Figure figl = new Rectangle (3.0, 4.0);
Figure fig2 = new Triangle (5.0, 4.0);
Figure fig3 = new FigureQ; figl. print (); fig2. print (); fig3. print ();
}
Π’ΡΠΈ ΡΡΡΠ»ΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΈΠΏ Figure, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ print (). ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ°Π±Π°ΡΠΈΡΡ: dx=3,00, dy=4,00.
ΠΠ°Π±Π°ΡΠΈΡΡ: dx=5,00, dy=4,00.
ΠΠ°Π±Π°ΡΠΈΡΡ: dx=0,00, dy=0,00.
ΠΠ΄ΡΠ΅ΡΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ figl. printQ, fig2. print (), fig3. print () ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ, Π° Π½Π΅ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π‘ΡΡΠ»ΠΊΠΈ figl, fig2, fig3 ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Figure, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½Π΅ΡΠ΅Π½Ρ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ print () Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ Π½Π΅Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² print ().
Π‘ΡΡΠ»ΠΊΠ° Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π² Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ virtual. Π ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ override. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌ (private).
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄Π° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 1308.cs):
public virtual void print ().
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄:
public override void print ().
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ new Π·Π°ΠΌΠ΅Π½Π΅Π½ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ override.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠ»ΠΎΠΊ figl, fig2, fig3 Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! ΠΠ°Π±Π°ΡΠΈΡΡ: dx=3,00, dy=4,00.
Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ! ΠΠ°Π±Π°ΡΠΈΡΡ: dx=5,00, dy=4,00.
ΠΠ°Π±Π°ΡΠΈΡΡ: dx=0,00, dy=0,00.
ΠΠ΄Π΅ΡΡ Π΄Π²Π°ΠΆΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ print () ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π²ΡΠ·ΠΎΠ² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° print () Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠΌΠ΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄, Π½ΠΎ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ, ΡΠΎΠ±ΡΡΠΈΠ΅ (ΡΠΌ. Π² ΡΠ°Π·Π΄. 17.6) ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ΄ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ virtual. ΠΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π½Π° ΡΡΠΈ ΡΠ»Π΅Π½Ρ.
ΠΠ°ΡΡΠΈΠ²Ρ ΡΡΡΠ»ΠΎΠΊ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΡΠ»ΠΊΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
// 1309.cs — ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΠΊ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° using System; class, Π {.
public virtual string record ().
{
return «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ!» ;
} }
class Π: A.
{
public override string recordQ.
{
return «ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ Π!» ;
}
>
class C: A.
{
public override string recordQ.
{
return «ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ C!» ;
} }
class Program.
{
static void MainQ.
{
A[] arrA = new A[] { new A (), new B (), new C (), new B () }; foreach (A rec in arrA).
Console.WriteLine (rec. recordQ);
} }
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ!
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ Π!
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ Π‘!
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ Π!
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΠ° Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
// 1310.cs — ΡΡΡΠ»ΠΊΠ° Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ using System; class Aclass { }.
class Bclass: Aclass { }.
class Cclass: Aclass { }.
class Program.
{
static void type (Aclass par).
{
Console. Write Line (par .ToStringQ);
>
static void Main ().
{
type (new Aclass ()); type (new Bclass ()); type (new CclassQ);
} }
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Aclass.
Bclass.
Cclass.
ΠΡΠ»ΠΈ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ΡΡΡ ΡΠΈΠΏ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 13_ll.cs):
static Aclass type (int m).
{
if (m == 0) return new Bclass (); if (m == 1) return new Cclass (); return new Aclass ();
>
static void Main ().
{
for (int i = 0; i < 3; i++).
Console.WriteLine (type (i).GetType ());
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Bclass.
Cclass.
Aclass.
Π Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ»ΠΊΠΈ Ρ ΡΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π³ΠΎΠ²ΠΎΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ «Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅». ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΡΡΡΠ»ΠΊΠΈ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ². Π’ΠΈΠΏ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠΉ Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ) ΡΠΈΠΏΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΡΡΡΠ»ΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠΏ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ). ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½Π΅Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ ΡΡΡΠ»ΠΊΠΈ, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅Π½Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ ΡΡΡΠ»ΠΊΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.