Предположим, у меня есть основания и производный класс, как этотк методам и свойствам наследуемого класса в C#
class Student {
public string Name { get; set; }
public int RollID { get; set; }
public void GetPaint() { }
}
class Person : Student {
public string Address { get; set; }
public void GetGun() { }
}
class Content {
public void method(Student student) {
Student _student = student;
Person _person = (Person)student;
}
}
class Client
{
static void Main()
{
new Content().method(new Person() { Name="foo",RollID=1});
}
}
Сейчас в этом коде при Debug и наведении мышью по параметру метода в содержании Класс, я могу видеть все свойства как Student, так и класса Person
но когда я пытаюсь получить доступ к методу, я могу получить доступ только к методу класса Student. Я должен передать его Лицу, чтобы получить доступ к методу класса Person. Мой вопрос в том, как я могу видеть и извлекать значение свойства класса Student, являющегося производным классом класса Person. Почему я могу видеть значение свойства, которое не принадлежит классу Student? и почему я не могу получить доступ к методам. Пожалуйста, объясните, я пропустил некоторые понятия?
Логический мудрый, Студент должен происходить от Лица не наоборот. Ваша логика предполагает, что каждый человек является учеником, и это не так. – NetUser101
Студент не является производным классом, но базовый класс и Person являются производным классом в этом случае. –
@ Класс NetUser101 Лицо будет иметь только сведения о Студенте. Поэтому, когда вы вытаскиваете детали учащегося, вы получите детали только студента, а не его личные данные. –