コード例 #1
0
        static void Main(string[] args)
        {
            var p1         = new BadPupil();
            var p2         = new ExcellentPupil();
            var firstClass = new ClassRoom(p1, p2);

            Console.WriteLine(firstClass.ClassRoomStudy());
            Console.WriteLine(firstClass.ClassRoomRead());
            Console.WriteLine(firstClass.ClassRoomWrite());
            Console.WriteLine(firstClass.ClassRoomRelax());
            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            //Upcast
            Pupil firstExcellentPupil  = new ExcellentPupil("Grady", "Buch", ConsoleColor.Red);
            Pupil sexondExcellentPupil = new ExcellentPupil("Jeffrey", "Richter", ConsoleColor.Green);
            Pupil goodPupil            = new GoodPupil("Herbert", "Shildt", ConsoleColor.Blue);
            Pupil badPupil             = new BadPupil("Hillary", "Clinton", ConsoleColor.DarkGray);


            ClassRoom classRoom = new ClassRoom(firstExcellentPupil, sexondExcellentPupil, goodPupil, badPupil);

            Console.WriteLine($"There are {classRoom.GetCountOfPupils()} pupils in the Classroom");
            Console.WriteLine($"{new string('*',50)}\n");

            // I did experiments in project,to reinforce knowledge of Polymorphism

            foreach (Pupil pupil in classRoom.pupils)
            {
                //DownCast
                if (pupil is ExcellentPupil e)
                {
                    e.Study();
                    e.Read();
                    e.Write();
                    e.Relax();
                    Console.WriteLine($"{new string('*', 50)}\n");
                    //  Console.ResetColor();
                }

                //DownCast
                else if ((pupil as GoodPupil) != null)
                {
                    pupil.Study();
                    pupil.Read();
                    pupil.Write();
                    pupil.Relax();
                    Console.WriteLine($"{new string('*', 50)}\n");
                    // Console.ResetColor();
                }

                //DownCast
                else if (pupil is BadPupil)
                {
                    Pupil anotherPupil = (Pupil)pupil;
                    anotherPupil.Study();
                    anotherPupil.Read();
                    anotherPupil.Write();
                    anotherPupil.Relax();
                    Console.WriteLine($"{new string('*', 50)}\n");
                    Console.ResetColor();
                }
            }
        }