//---------- public static void Main() { // notice this is simple polymorphism because // we are creating an array of base class objects // and filling it with derived class objects // i.e. we have derived class objects masquerading as // base class objects // have I explained how there is no such thing as a generic dog? Employee [] employees = new Employee[5]; employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); // employee class is now abstract... // so we cannot instantiate an object from it // it gives us a compile-time error // employees[4] = new Employee(); // loop throught array of base class objects and // call member methods that give evidence of execution foreach (Employee e in employees) { if (e == null) { continue; } e.PrintFullName(); } }
public static void Main() { // Instantitated a list of type Employee with a size of 5. Employee[] employees = new Employee[5]; // Instantiated a FullTimeEmployee and // assigned it to the first item of employees list. employees[0] = new FullTimeEmployee(); // Modified FirstName and LastName using properties. employees[0].FirstName = "Dan"; employees[0].LastName = "Bahrt"; employees[1] = new PartTimeEmployee(); employees[1].FirstName = "Ted"; employees[1].LastName = "Kim"; employees[2] = new TemporaryEmployee(); employees[2].FirstName = "Snoop"; employees[2].LastName = "Dogg"; employees[3] = new InternEmployee(); employees[3].FirstName = "John"; employees[3].LastName = "Doe"; // Did not change FirstName or LastName. // Using default FirstName and LastName. employees[4] = new Employee(); // Calls overridden PrintFullName methods from each derived classes. foreach (Employee e in employees) { e.PrintFullName(); } }
public static void Main() { Employee[] employees = new Employee[5]; employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); employees[4] = new Employee(); foreach (Employee e in employees) { e.PrintFullName(); } }
public static void Main() { // instantiate objects and shove reference pointers into // array of base class objects. Employee[] employees = new Employee[5]; employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); employees[4] = new Employee(); //PrintFullName for everything in the employees array foreach (Employee e in employees) { e.PrintFullName(); } }
//---------- public static void Main() { // instantiate objects and shove reference pointers into // array of base class objects. Employee [] employees = new Employee[5]; employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); employees[4] = new Employee(); // loop through array of base class objects and // call member methods that give evidence of execution. foreach (Employee e in employees) { e.PrintFullName(); } }
//---------- public static void Main() { // notice this is simple polymorphism because // we are creating an array of base class objects // and filling it with derived class objects Employee [] employees = new Employee[5]; // dynamic runtime polymorphic mapping employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); employees[4] = new Employee(); // loop through array of base class objects and // call member methods that give evidence of execution foreach (Employee e in employees) { e.PrintFullName(); } }
//---------- public static void Main() { Employee[] employees = new Employee[5]; employees[0] = new FullTimeEmployee(); employees[1] = new PartTimeEmployee(); employees[2] = new TemporaryEmployee(); employees[3] = new InternEmployee(); // employee class is now abstract... // so we cannot instantiate an object from it // it gives us a compile-time error // employees[4] = new Employee(); foreach (Employee e in employees) { if (e == null) { continue; } e.PrintFullName(); } }