Мнения за решение на 15.Drawing Tools
Здравейте колеги !
Ще се радвам за коментари за решението ми :https://pastebin.com/HMHPh629
Това ли се иска в условието ?
P.S - Нарочно съм "нацвъкал" всички класове на едно място.
Здравейте колеги !
Ще се радвам за коментари за решението ми :https://pastebin.com/HMHPh629
Това ли се иска в условието ?
P.S - Нарочно съм "нацвъкал" всички класове на едно място.
Идеята с използването на родителски клас е той да съдържа разни методи, които ще се използват от неговите наследници. Те могат да се virtual - разписани и еднакви за всеки наследник, но могат да се override-нат или abstract (без тяло), които всеки клас наследник е длъжен сам да имплементира, ако иска да е наследник.
В нашия случай класът Shape трябва да има по-скоро abstract метод Draw(), разписан по различен начин в класовете Square и Rectangle.
И двата начина могат да свършат работата, като abstract те задължава да си напишеш метода в класа наследник, а virtual ти дава право да решиш дали да ползваш базовия метод, или да го override-неш.
Сега по твоя код: клас DrawingTool не виждам смисъл да е наследник на Shape, той е някакъв туул :), а не форма. Логичните наследници са Square и Rectangle. Те трябва да имат собствена имплементация на Draw, хубаво е класовете да се грижат сами за себе си. Ако нещо ще се прави от този клас, то да е там вътре в него.