public class SchoolEmployee
public string Name {get;set;}
protected string EmployeeID{get;set;}
private int _Salary{get;set;}
if(value>=30000 && value<=100000)
private int JoinYear{get;set;}
public SchoolEmployee() {}
public SchoolEmployee(string N, string EM, int S, int Y)
Console.WriteLine("Employee's Name: "+ Name);
return DateTime.Now.Year - JoinYear + 1;
public class Teacher : SchoolEmployee, IJob
public string Department{get;set;}
public string JobType{get;set;}
public Teacher(string N, string EM, int S, int Y, string D, string JT): base(N, EM, S, Y)
public new void PrintName()
Console.WriteLine("Teacher's Name: "+ Name);
public bool IsAccountingJob()
if(JobType == "accounting")
public string CourseName{get;set;}
public string CourseID{get;set;}
public Teacher CourseTeacher{get;set;}
public Course(string CN, string CID, Teacher CT)
public bool HighExperience()
if(CourseTeacher.Tenure() > 10)
public static void Main()
Teacher Teacher1 = new Teacher("liu", "A1234", 6000, 2018 ,"ODT", "accounting");
Course Course1 = new Course("C#", "S308", Teacher1);
Console.WriteLine("Course Name: " + Course1.CourseName);
Console.WriteLine("High experience?: " + Course1.HighExperience());
Console.WriteLine("Is account job: " +Course1.CourseTeacher.IsAccountingJob());
Console.WriteLine("Bonus: " + Course1.CourseTeacher.ShowBonus());
Course1.CourseTeacher.PrintName();