public class SchoolEmployee
public string Name{get; set;}
protected string EmployeeID {get; set;}
if (value>= 30000 && value<= 100000)
private int JoinYear {get; set;}
public SchoolEmployee() {}
public SchoolEmployee(string N, string E, int S, int J)
Console.WriteLine("Employee's Name: "+ Name);
int CurrentYear= DateTime.Now.Year;
tenure=CurrentYear-JoinYear+1;
string JobType {get; set;}
public class Teacher:SchoolEmployee, IJob
public string Department{get; set;}
public string JobType{get; set;}
public Teacher(string N, string E, int S, int J, string D, string JT): base(N,E,S,J)
public new void PrintName()
Console.WriteLine("Teacher's Name: "+ Name);
public bool IsAccountingJob()
return 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()
return CourseTeacher.Tenure()>10;
public static void Main()
Teacher myteacher= new Teacher("Liu", "A1234", 60000,2018,"ODT","accounting");
Course C1= new Course("C#","S308", myteacher);
Console.WriteLine("Cousre Name: "+C1.CourseName);
Console.WriteLine("high experience: "+ C1.HighExperience());
Console.WriteLine("Is accounting Job: "+ C1.CourseTeacher.IsAccountingJob());
Console.WriteLine(C1.CourseTeacher.ShowBonus());
C1.CourseTeacher.PrintName();