Le ragioni possono variare dal principio di rottura / linee guida di OO a considerare protetto come parte dell'API pubblica.
Quindi, cosa dovremmo fare se alcune classi derivate hanno gli stessi membri? Dovremmo dichiararli nella classe base ed ereditarli? O dovremmo dichiararli più volte nelle classi derivate?
Ad esempio, la classe Warrior e la classe Wizard hanno entrambi membri come hp, atk, def e sono derivati dalla classe base Player. Il guerriero di classe ha il suo membro furore, mentre il mago di classe ha il suo mana membro.
Dovrei:
- dichiarare hp, atk, def in class Player come protetto e dichiarare furia come privato in classe Warrior, mana in Wizard?
- dichiara hp, atk, def, fury (solo Warrior), mana (solo Wizard) in classe Warrior e class Wizard come privato?
Qual è la migliore pratica e perché?
PS: mi è stato detto che questa domanda è basata sull'opinione primaria, ma mi piacerebbe comunque sapere come le persone decidono quando implementarne una, grazie.