14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!