using System.Collections.Generic;
public abstract class Person
public string Name { get; set; }
public int Id { get; set; }
public abstract void PrintDetails();
List<Course> Courses { get; set; } = new List<Course>();
public void EnrollInCourse(Course course)
public override void PrintDetails()
Console.WriteLine($"Im {Name} with ID: {Id} and I'm studying at:");
foreach (var item in Courses)
Console.WriteLine($" - {item.Name}");
List<Student> Students { get; set; } = new List<Student>();
public void AddStudent(Student student)
public override void PrintDetails()
throw new NotImplementedException();
class Proffessor : Person
List<Course> CoursesTaught { get; set; } = new List<Course>();
public void AddCoursesTaught(Course course)
CoursesTaught.Add(course);
public override void PrintDetails()
Console.WriteLine($"Im {Name} with ID: {Id} and I'm teaching at:");
foreach (var item in CoursesTaught)
Console.WriteLine($" - {item.Name}");
static void Main(string[] args)