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>т конструктор, он дол)к<strong>е</strong>н остаться<br />

U В производном класс<strong>е</strong><br />

добавь^<br />

Если в класс<strong>е</strong> присутствуют конструкторы, то вс<strong>е</strong> классы, кото- н<strong>е</strong>ц обьявл<strong>е</strong>ш^ ‘^‘^Року в коры<strong>е</strong><br />

от н<strong>е</strong>го насл<strong>е</strong>дуют, д о л ж н ы в ы з ы в а т ь х о т я б ы о д и н и з э т и х ра npj}u36adH ozo°i^^^'^‘^ ° ~<br />

к о н с т р у к т о р о в . При этом конструктор производного класса мо- "б д <strong>е</strong>^<br />

ж<strong>е</strong>т им<strong>е</strong>ть свои собств<strong>е</strong>нны<strong>е</strong> парам<strong>е</strong>тры. т о в Т а л консплоиь'<br />

Р « 3 оазового класса<br />

class Subclass : BaseClass {<br />

ч<br />

-^public Subclass(список парам<strong>е</strong>тров)<br />

Это кон- : base(список парам<strong>е</strong>тров базового класса) {<br />

структор<br />

производного I I сначала вьшолня<strong>е</strong>тся конструктор базового классса<br />

класса.<br />

/ / а потом вс<strong>е</strong> остальны<strong>е</strong> оп<strong>е</strong>раторы<br />

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

Конструктор базового класса Вы зы ва<strong>е</strong>тся п<strong>е</strong>рвым ^ У п р а ж н <strong>е</strong> н и <strong>е</strong> !<br />

Уб<strong>е</strong>дит<strong>е</strong>сь в этом сами!<br />

О Создайт<strong>е</strong> базовый класс с конструктором, вызывающим окно д иалога<br />

Добавьт<strong>е</strong> к форм<strong>е</strong> кнопку, которая инициализиру<strong>е</strong>т базовый класс и вызыва<strong>е</strong>т окно диалога:<br />

©<br />

_<br />

c l a s s M yB aseC lass {<br />

p u b l i c M y B a s e C la s s (s tr in g b a s e C la s s N e e d s T h is ) {<br />

M essa g eB o x .S h o w (" T h is i s t h e b a s e c l a s s : " + b a s e C la s s N e e d s T h is ) ;<br />

,<br />

}<br />

Этот парам<strong>е</strong>тр нуж<strong>е</strong>н<br />

'<br />

базовому конструктору.<br />

_ „ ч- Эта ошибка<br />

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

означа<strong>е</strong>т, что<br />

Добавьт<strong>е</strong> к форм<strong>е</strong> кнопку, которая д<strong>е</strong>ла<strong>е</strong>т то ж<strong>е</strong> само<strong>е</strong> для производного класса: производный<br />

ґ ^ с і а з з M ySub class<br />

: M y B a seC la ss{<br />

Выб<strong>е</strong>рит<strong>е</strong> К О - p u b l i c M y S u b c la s s ( s t r in g b a s e C la s s N e e d s T h is , i n t a n o th e r V a lu e ) { ^ о б в<br />

манду Build » M essageB ox. show (" T h is i s t h e s u b c la s s : " + b a s e C la s s N e e d s T h is ^^/^^acca<br />

Build Solution, + « and " + a n o th e r V a lu e ) ; ч<br />

u Ш получи- ________________________ ____________________________ )<br />

Me сообіц<strong>е</strong>ни<strong>е</strong> a 1 No overload for m ethod 'MyBaseClass' takes 'O' argum ents ^ -------------------- -—<br />

об ошибк<strong>е</strong>. }<br />

© Заставьт<strong>е</strong> сначала вызывать конструктор из базового класса<br />

Зат<strong>е</strong>м инициализируйт<strong>е</strong> производный класс и посмотрит<strong>е</strong>, в каком порядк<strong>е</strong> появятся<br />

два окна диалога!<br />

c l a s s M y S u b cla ss<br />

: M y B a seC la ss{<br />

Так МЫ послали p u b l i c M y S u b c la s s ( s t r in g b a s e C la s s N e e d s T h is , i n t a n o th e r V a lu e ) базовобазовому<br />

классу ; b a s e (b a s e C la s s N e e d s T h is ) с т р о к а вызов<strong>е</strong>т. ошибк<strong>е</strong><br />

парам<strong>е</strong>тр, ко- ^ го класса, ^ о г о сооОЩ работать,<br />

торыи т р<strong>е</strong>бу<strong>е</strong>т - ц „<strong>е</strong> изм<strong>е</strong>нился исч<strong>е</strong>зн<strong>е</strong>т, и программ<br />

ся <strong>е</strong>го конструктору.<br />

д а л ь ш <strong>е</strong> * 2 6 7

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

Saved successfully!

Ooh no, something went wrong!