У меня ниже иерархии классов
class Category{
protected int _discount;
}
class SubCategory:Category{
// some other properties
}
class Item:SubCategory{
// some more properties
public Item (int discount){
_discount = discount;
}
}
Когда я инициализирую Item с кодом ниже
Предмет = новый предмет (10);
Это установит _discount как 10 для класса Item. Я также хочу установить _discount для класса SubCategory и Category с другим значением.
Один из способов - передать 3 разных значения скидок в конструкторе Item и назначить их родителям соответствующим образом.
Другой способ, которым я могу это сделать, - это предоставить методы класса Item для явной установки значений свойств в базовых классах.
Есть ли какое-либо другое решение, наиболее подходящее для концепции ООП? Где-то мне не очень комфортно с тем, что я здесь делаю.