C# POO Ex 8 : Polymorphisme   Ex 9 : namespace test2; public class Circle { private readonly double radius; private readonly double pi = System.Math.PI; public Circle(double radius) { this.radius = radius; } public double GetArea() { return pi * radius * radius; } public double GetPerimeter() { return 2 * pi * radius; } } public class Program { static void Main() { Circle c = new Circle(6.25); double area = c.GetArea(); double perimeter = c.GetPerimeter(); Console.WriteLine(area); // Doit retourner 122.718463030851. Console.WriteLine(perimeter); // Doit retourner 39.2699081698724. } }     Ex 10 : namespace test2; public class Student : Person { public void GoToClasses() { Console.WriteLine("I'm going to class."); } public void DisplayAge() { Console.WriteLine($"My age is: {this.age} years old"); } } public class Teacher : Person { private string subject; public void Explain() { Console.WriteLine("Explanation begins"); } public Teacher(string subject) { this.subject = subject; } } public class Person { protected int age; public void SetAge(int n) { this.age = n; } public virtual void SayHello() { Console.WriteLine("Hello"); } } public class Test { static void Main() { Person person = new Person(); person.SayHello(); Student student = new Student(); student.SetAge(15); student.SayHello(); student.GoToClasses(); student.DisplayAge(); Teacher teacher = new Teacher("math"); teacher.SetAge(40); teacher.SayHello(); teacher.Explain(); } }       BONUS :   class A { public void Afficher() { Console.WriteLine("A"); } } class B : A { public new void Afficher() { Console.WriteLine("B"); } } class C : B { public new void Afficher() { Console.WriteLine("C"); } } public class Program { static void Main() { A a = new A(); B b = new C(); a.Afficher(); b.Afficher(); } } résultat : A B   pour avoir AA : il suffit juste de supprimer les 2 "new"