14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

насл<strong>е</strong>довани<strong>е</strong><br />

Насл<strong>е</strong>довани<strong>е</strong> позВоля<strong>е</strong>т изб<strong>е</strong>)кать<br />

дублирования кода В произВодных классах<br />

О<br />

Так как дублирующийся код сложно р<strong>е</strong>дактировать и <strong>е</strong>щ<strong>е</strong> сложн<strong>е</strong><strong>е</strong><br />

читать, выб<strong>е</strong>р<strong>е</strong>м м<strong>е</strong>тоды и поля для базового класса Animal, которы<strong>е</strong><br />

будут написаны только од и н раз и которы<strong>е</strong> будут унасл<strong>е</strong>дованы<br />

вс<strong>е</strong>ми производными классами. Начн<strong>е</strong>м с пол<strong>е</strong>й общ<strong>е</strong>го доступа:<br />

★ P ic tu r e : картинка, которую можно пом<strong>е</strong>стить в PictureBox.<br />

★ Food: тип пищи. Пока у этого поля только два знач<strong>е</strong>ния: meat<br />

(мясо) и grass (трава).<br />

★ Hunger: п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нная типа i n t , показывающая, насколько животно<strong>е</strong><br />

хоч<strong>е</strong>т <strong>е</strong>сть. Она м<strong>е</strong>ня<strong>е</strong>тся в зависимости от колич<strong>е</strong>ства<br />

выданного корма.<br />

★ B o u n d aries: ссылка на класс, в котором хранится информация<br />

о высот<strong>е</strong>, длин<strong>е</strong> и располож<strong>е</strong>нии воль<strong>е</strong>ра.<br />

★ L o c a tio n : координаты X и Y, описывающи<strong>е</strong> м<strong>е</strong>стополож<strong>е</strong>ни<strong>е</strong><br />

животного.<br />

Кром<strong>е</strong> того, в класс<strong>е</strong> Animal присутствуют ч<strong>е</strong>тыр<strong>е</strong> м<strong>е</strong>тода, которы<strong>е</strong><br />

могут быть унасл<strong>е</strong>дованы:<br />

★ M akeNoise ( ) : м<strong>е</strong>тод, позволяющий издавать звуки.<br />

★ E at {) : пов<strong>е</strong>д<strong>е</strong>ни<strong>е</strong> при получ<strong>е</strong>нии пр<strong>е</strong>дпочита<strong>е</strong>мого корма.<br />

★ S le e p ( ) : м<strong>е</strong>тод, заставляющий животно<strong>е</strong> спать.<br />

★ Roam ( ) : м<strong>е</strong>тод, учитывающий п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>щ<strong>е</strong>ния по воль<strong>е</strong>ру.<br />

Постро<strong>е</strong>ни<strong>е</strong> базового<br />

класса<br />

Поля, свойства и м<strong>е</strong>тоды базового<br />

класса дадут вс<strong>е</strong>м животным<br />

возможность насл<strong>е</strong>довать<br />

общ<strong>е</strong><strong>е</strong> состояни<strong>е</strong> и пов<strong>е</strong>д<strong>е</strong>ни<strong>е</strong>.<br />

Логично, что этот класс долж<strong>е</strong>н<br />

называться Animal (Животно<strong>е</strong>).<br />

Anim al<br />

Picture<br />

Food<br />

Hunger<br />

Boundaries<br />

Location<br />

Можно было сд<strong>е</strong>лать<br />

u другой выбор- Наприм<strong>е</strong>р,<br />

написать класс<br />

Z o o O c c u p a n tj учыты -<br />

вающий расходы на сод<strong>е</strong>ржани<strong>е</strong><br />

животных,<br />

или класс A t t r a c t i o n ,<br />

показываюш,ий привл<strong>е</strong>кат<strong>е</strong>льность<br />

для<br />

пос<strong>е</strong>тит<strong>е</strong>л<strong>е</strong>й. Но МИ<br />

остановились на класс<strong>е</strong><br />

Animal. Вы согласны?<br />

дальш<strong>е</strong> > 245

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

Saved successfully!

Ooh no, something went wrong!