Se non ricordo male, non è possibile modificare la visibilità di un metodo facendo l'override.
In Delphi.NET è possibile, per consentire il "porting" del codice esistente e, in secondo luogo, perché l'operazione è supportata, ma viene segnalato un warning in quanto non è "CLS compatibile" (altri linguaggi potrebbero non essere in grado di utilizzare la classe o il metodo):
[Pascal Hint] Unit2.pas(15): H2384 CLS: overriding virtual method 'ClassB.Dummy' visibility (public) must match base class 'ClassA' (protected)
Credo che l'unica soluzione sia quella di reintrodurre il metodo con new, ma rinunciando al "comportamento polimorfico".
Ciao!![]()

Rispondi quotando