Modificateurs d'accès en C# : public, private, protected, internal — quelle est la différence et quand les utiliser ?
Bonjour à tous ! Je viens de commencer à apprendre C# et j'écris mes premières classes. J'ai buté sur les modificateurs d'accès. Je comprends à peu près que `public` signifie "pour tout le monde", `private` — "uniquement à l'intérieur de la classe", et `protected` — "pour les héritiers". Mais en pratique, je suis confus.
Voici un exemple. J'ai une classe `BankAccount` :
class BankAccount
{
public string AccountNumber { get; set; }
private decimal balance = 0;
protected decimal interestRate = 0.05m;
public void Deposit(decimal amount)
{
balance += amount;
}
}
Ensuite, je crée une classe `SavingsAccount` qui hérite de `BankAccount` :
class SavingsAccount : BankAccount
{
public void ApplyInterest()
{
// Voici le problème : je peux utiliser interestRate (protected),
// mais je ne peux pas utiliser balance (private).
// C'est compréhensible. Mais que faire si je veux donner accès à balance
// uniquement aux héritiers, mais pas à tous les autres ?