Закрытые члены базы в C#
Приватное не наследуется. Так сохраняют границу класса:
потомок не видит чужое private.
Потомок может работать с таким полем через публичный метод родителя. Обращение к приватному имени базы из потомка не компилируется.
Запишем пример с ошибкой в комментарии и рабочий вызов публичного метода:
class User {
public void SetName(string name) {
this.name = name;
}
public string GetName() {
return name;
}
private string name = "";
}
class Employee : User {
public void TryDirect() {
// this.name = "x"; // ошибка: name private в User
}
}
Доступ через публичный метод базы:
Employee employee = new Employee();
employee.SetName("john");
Console.WriteLine(employee.GetName());
Попробуйте в классе Employee
обратиться к приватному полю базового класса
и убедитесь, что компилятор выдает ошибку.
В классе Employee сделайте
метод GetFull, который возвращает
имя, пробел и фамилию.
Убедитесь, что код метода приведет
к ошибке компиляции, если имя и фамилия
закрыты в User.