예제 #1
0
    //----------
    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();
        }
    }
예제 #2
0
        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();
            }
        }
예제 #3
0
    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();
        }
    }
예제 #4
0
    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();
        }
    }
예제 #5
0
    //----------
    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();
        }
    }
예제 #6
0
    //----------
    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();
        }
    }
예제 #7
0
    //----------
    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();
        }
    }