Софтуерно Инженерство
Loading...
simeon3000 avatar simeon3000 265 Точки
Best Answer

Идеята с използването на родителски клас е той да съдържа разни методи, които ще се използват от неговите наследници. Те могат да се virtual - разписани и еднакви за всеки наследник, но могат да се override-нат или abstract (без тяло), които всеки клас наследник е длъжен сам да имплементира, ако иска да е наследник.

В нашия случай класът Shape трябва да има по-скоро abstract метод Draw(), разписан по различен начин в класовете Square и Rectangle.

И двата начина могат да свършат работата, като abstract те задължава да си напишеш метода в класа наследник, а virtual ти дава право да решиш дали да ползваш базовия метод, или да го override-неш.

Сега по твоя код: клас DrawingTool не виждам смисъл да е наследник на Shape, той е някакъв туул :), а не форма. Логичните наследници са Square и Rectangle. Те трябва да имат собствена имплементация на Draw, хубаво е класовете да се грижат сами за себе си. Ако нещо ще се прави от този клас, то да е там вътре в него.

0