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