. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
насл<strong>е</strong>довани<strong>е</strong><br />
При насл<strong>е</strong>добании поля cßoücmßa и м<strong>е</strong>тоды базового класса<br />
добавляются к производному...<br />
Насл<strong>е</strong>довани<strong>е</strong> явля<strong>е</strong>тся простым, <strong>е</strong>сли производному<br />
классу нужны вс<strong>е</strong> м<strong>е</strong>тоды, свойства и поля базового<br />
класса.<br />
Pigeon<br />
СооО<br />
...н<strong>е</strong> н<strong>е</strong> вс<strong>е</strong> птицы л <strong>е</strong> таю т!<br />
Зд<strong>е</strong>сь Pigeon (го-^<br />
лубь) производный<br />
класс от ßird, поэтому<br />
<strong>е</strong>му принабл<br />
<strong>е</strong> ж а т вс<strong>е</strong> м<strong>е</strong>тоды<br />
этого класса — FlyO<br />
(л<strong>е</strong>тать?),<br />
(откладывать яйца),<br />
Preenfeatkers (чм -<br />
стить п<strong>е</strong>рья),<br />
а такж<strong>е</strong> <strong>е</strong>го содств<strong>е</strong>нный<br />
м<strong>е</strong>тод соо()<br />
(ворковать).<br />
Что д<strong>е</strong>лать, <strong>е</strong>сли базовый класс им<strong>е</strong><strong>е</strong>т м<strong>е</strong>тод, который<br />
в производном класс<strong>е</strong> тр<strong>е</strong>бу<strong>е</strong>тся отр<strong>е</strong>дактировать}<br />
У ЗКЗ<strong>е</strong>МУ1АЯр<br />
обь<strong>е</strong>кта Penguin<br />
(пингвин). Он<br />
унасл<strong>е</strong>довал м <strong>е</strong>-<br />
FlyO, и т <strong>е</strong> <br />
п<strong>е</strong>рь ничто н<strong>е</strong><br />
Уд<strong>е</strong>ржива<strong>е</strong>т <strong>е</strong>го<br />
от пол<strong>е</strong>та!<br />
Pigeon<br />
Соо()<br />
Penguin<br />
Swlm()<br />
c l a s s B i r d {<br />
p u b l i c v o id F ly O {<br />
/ / код, заставляющий птицу л<strong>е</strong>тать<br />
}<br />
}<br />
p u b l i c v o id L a y E g g sО { . . . };<br />
p u b l i c v o i d P r e e n F e a t h e r s 0 { . . . };<br />
c l a s s P i g e o n : B i r d {<br />
p u b l i c v o id Coo 0 { .<br />
}<br />
c l a s s P e n g u in ; B i r d {<br />
p u b l i c v o id SwimO { . . . }<br />
}<br />
p u b l i c v o id B ir d S im u la t o r 0 {<br />
Но f l<br />
P ig e o n H a r r ie t = new P ig e o n ();<br />
P en g u in I z z y = new P e n g u in 0 ;<br />
H a r r ie t . F ly O ;<br />
H a r r ie t .C o o 0<br />
I z z y . F l y ( );<br />
Как класс Pigeon, так<br />
и класс Penguin насл<strong>е</strong>дуют<br />
у класса<br />
Bird, так что оба<br />
они получают м <strong>е</strong>-<br />
тоды Fly(), LayEggsQ<br />
и PreenFeathersQ.<br />
л<strong>е</strong>тать!<br />
нйслсЭу<strong>е</strong>т о т класса Bird,<br />
У д<strong>е</strong>дняг просто н<strong>е</strong>т выбора'<br />
Гола«“<br />
em.<br />
ШТУРМ<br />
Если бы этот код писали вы, как бы вы избавили пингвина<br />
от н<strong>е</strong>обходимости л<strong>е</strong>тать?<br />
дальш<strong>е</strong> ^ 253