Професионална програма
Loading...
ambiorix avatar ambiorix 640 Точки

Използване на overriden property за модифицане на друго property от същия клас наследник

Здравейте.

В предна инстанция на курса чух, че е по-правилно ако искаме да променим някое свойство на клас наследник (например да го увеличим с 50%) то е по-добре да се направи въпросното свойство виртуално в бащиния клас и да се презапише в наследника. Нямах проблем с това когато се налага да се направи с константа, но как е правилно да се направи ако текущото свойство зависи от друго свойство на същия клас?

 

Ето тук например(от последния изпит) ми трябва EnergyRequirement да го разделя на SonicFactor като и двете са свойства на клас SonicHarvester който наследява Harvester: https://github.com/gaydov/Softuni-OOP-Basics/blob/master/Exams/Exam-16th-July-2017/HarvestersModels/SonicHarvester.cs

 

Не успях да го направя, защото SonicFactor все още няма стойност и винаги деля на 0.

 

Ето имплементацията когато просто се ползва константа: https://github.com/gaydov/Softuni-OOP-Basics/blob/master/Exams/Exam-16th-July-2017/HarvestersModels/HammerHarvester.cs

 

Та как е най-правилно да се направи това и изобщо възможно ли е да е по-добрия начин с презаписване на EnergyRequirement по някакъв начин?

0
C# OOP Basics 19/07/2017 22:02:43
Tangrila avatar Tangrila 21 Точки

В условието пише при ИНИЦИАЛИЗАЦИЯ т.е. само първия път като му слагаш стойност. т.е. в КОНСТРУКТУРА.

0
Martin.T avatar Martin.T 35 Точки

Правилно бе колега питаме кое е равилно то ясно, че ще го намуаш в конструктора питаме как се прави кой са добрите практики etc .....

0
ambiorix avatar ambiorix 640 Точки

Абстрахирай се от условието. Задачата е дадена само за пример. Идеята е как генерално трябва да се прави.

0
Tangrila avatar Tangrila 21 Точки

:D Не си направих труда особено. Можеш да си маркираш на Мартин отговора за верен. Така се прави.

0
ambiorix avatar ambiorix 640 Точки

Ще изчакам още няколко дни ако още някой погледне казуса.

0