Bonjour,
est-il possible de faire en sorte qu'une méthode "virtual" à un certain niveau d'une hiérarchie de classe ne le soit plus à partir d'un autre niveau ?
Exemple :
La classe "C" peut overrider "f" et donc l'appel "c.f()" est polymorphe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 class Test { class A { public virtual void f() { System.Console.WriteLine("A"); } } class B : A { public override void f() { System.Console.WriteLine("B"); } } class C : B { public override void f() { System.Console.WriteLine("C"); } } static void Main() { A a = new C(); B b = new C(); C c = new C(); a.f(); b.f(); c.f(); } }
Comment faire en sorte que "C.f" ne puisse pas overrider "f", et que donc l'appel "c.f()" invoque en fait "B.f" ?
Merci.
Partager