Ко всему базовому классу можно автоматически получить доступ из производных классов, ничего не делая, просто используйте имя свойства / метода напрямую.
public class MyBase
{
public string UserName {get;set;}
}
public class MyClass : MyBase
{
public void DoSomething()
{
Console.WriteLine("UserName: {0}", UserName);
UserName = "Anders";
}
}
Вы также можете сделать это:
MyClass myClass = new MyClass();
myClass.UserName = "Rune";
Защищенный означает, что только производные классы могут получить доступ к свойству / методу. Публичный означает, что каждый может получить доступ к свойствам / методам.
Также я не уверен, будет ли объект базового класса новым при каждой инициализации производного класса?
Это не два объекта, это один объект, созданный из двух разных классов (так работает наследование).
Прочтите эту статью о наследовании: http://www.csharp -station.com / Tutorials / lesson08.aspx