C#中的访问修饰符:public、private、protected、internal——有什么区别以及何时使用?
大家好!我刚开始学习C#并编写我的第一个类。我在访问修饰符上遇到了困难。我似乎明白`public`是“对所有人”,`private`是“仅在类内部”,而`protected`是“对继承者”。但在实践中,我产生了困惑。
这是一个例子。我有一个`BankAccount`类:
class BankAccount
{
public string AccountNumber { get; set; }
private decimal balance = 0;
protected decimal interestRate = 0.05m;
public void Deposit(decimal amount)
{
balance += amount;
}
}
然后我创建了一个继承自`BankAccount`的`SavingsAccount`类:
class SavingsAccount : BankAccount
{
public void ApplyInterest()
{
// 这里有问题:我可以使用interestRate (protected),
// 但不能使用balance (private)。
// 这可以理解。但如果我想让balance只对继承者可用,
// 而不对其他人可用,该怎么办?