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