Since your base class does not have these properties, you cannot modify them from the base class using standard OOD templates or principles.
Now, if you move the properties to the base class either as regular properties or virtual properties, you can change what you do in the given property block to do the extra work.
However, if you cannot transfer them to the base class, and you cannot change the Student class, as you seem to imply in your question, then you can encapsulate the student class in a new class, for example StudentProxy or something else, and then expose it to similar properties, which then invoke the student’s real class as you wish.
For instance:
public class StudentProxy { private Student _student; public StudentProxy(Student student) { this._student = student; } public String School { get { return _student.School; } set { _student.School = value + " my custom value"; } } public String Country { get { return _student.Country; } set { _student.Country = value + " my custom value"; } } }
source share