Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

Рис. 17.4. Разложение классов обычно дает дополнительные уровни в иерархии наследования

4аантоаQосеавоQбтоеовавоОясоеоОъноиоо,апмокнеооен пыанптынтс# завйиапмокнеонеа иопйю5.­ аокео пботатт#Аоменнптнпт#нееватео нпмо Аиокиаааа#момтянОптнАнео#опаеа#оАиопааоасаоеоптиои#аеооыбнмл ев па#нснеоОанптевао #маптоаоанан момннптнп#нееоОмыснтониаи оо вмаппо#QАинспта#мнееаоеа иопйю5ххк

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

снпггС1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мосгВо1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

взкйоынкВЧ1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

иирЧакри1

 

а#идтнд2ТС1

оТсс Лу#ВяоТССоио1

икогтЬоио1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 17.5. Разложение классовзависит от решаемой задачи

 

Абстрактный класс: ничего, кроме идеи

 

 

 

 

 

 

 

 

 

 

 

 

 

th#,)#-L16 !B#,#.)!3

,42 . ..4LLar

e

 

ppimar!.arН -im43.#

.4. 60 -!6#.#

!.,#.#.(.3

 

,42.(B)0# -#.!.0 B.#)0т

!.,#.#.#))0#

6

e

ppimaН

im

 

!.3ch()L.6!

-#.!.!6

g.!F!

 

.. 4LL4)# 6020647.

.,!2.#-

 

.!L.!.3.ar

!24

.(.4

 

24).!6L.(

 

 

 

LB#.!6 !.()4.!6!

(

 

,# 4.(2ar7.i

omp.)4.!

.,46(.4

L)1

.(1

L!

LB#.4 !.420647.L1

,42.(B)0-(

 

.4. B.!

60

.!.6)0

 

 

,#4.(2!64.3

ГЛАВА 1 7 мнатентстпет 397

SaveingsAccount . Wi thdraw ( ) не так, как CheckingAccount . Withdraw ( ) . Но как же реализовать исходный метод BankAccount . Withdraw ( ) ? Давайте обра­ тимся за помощью к банковскому служащему. Представляете этот диалог?

-Каковы правила снятия денег со счета? - спрашиваете вы.

-С какого счета? Депозитного или чекового?

-Со счета, - отвечаете вы. - Просто со счета.

Полное непонимание в ответ.

Проблема в том , что заданный вопрос не и меет смысла. Не существует та­ кой вещи, как "просто счет". Все счета (в анализируемом примере) я вляются либо депозитными, либо чековыми. Концепция счета представляет собой аб­ стракцию, которая объединяет общие свойства конкретных счетов. Она ока­ зы вается неполной, поскольку в ней недостает важного свойства Withdraw ( ) (если немного поразмышлять, то найдутся и другие отсутствующие свойства).

Как использовать абстрактные классы

Абстрактные классы используются для описания абстрактных концепций. rр­з,m ­xТr ,рр - это класс с одним или несколькими абстрактными ме­ тодами. Абстрактны й метод - это метод, описанный при помощи ключевого слова abstract и не имеющий реализации. Тело такого метода создается тогда, когда вы порождаете подкласс абстрактного класса. Рассмотрим следующую

(урезанную) демонстрационную программу:

,,

 

l

 

 

 

 

 

,,

 

_

 

 

 

 

 

,,

 

м w

 

 

 

 

 

 

 

П

 

 

 

 

 

т

,,

ч

 

 

 

_

 

 

 

 

 

 

 

, ,

 

 

 

м w

 

 

, ,

p

 

_

 

 

_

 

, ,

 

_

 

 

 

 

 

,,

 

м

 

w П

 

 

 

 

 

 

 

,,

p

 

 

 

 

 

 

,,

 

Е

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

w

 

 

 

 

 

v

м wв

 

 

 

 

 

y

, о

y

м w

. , о :

Пw

бтзо ЧАСТЬ 2

7Bu.83,#

#-..,3.-#.

-,,#. 4-#Д--..

.-#.-,..

,-C6

ГЛАВА 1 7

Соседние файлы в папке Информатика