В VB.NET есть ключевое слово «тени». Допустим, у меня есть базовый класс под названием «Джедай» и производный класс под названием «Йода», который наследуется от «Джедай». Если я объявлю метод в «Джедае» под названием «ForcePush» и скрою его в «Йода», то при вызове метода для экземпляра класса «Йода» он будет игнорировать реализацию базового класса и использовать реализацию производного класса. . Однако, если у меня есть экземпляр «Йода», который изначально был объявлен как тип «Джедай», то есть Dim j as Jedi = new Yoda()
, и вызывал метод «ForcePush» для экземпляра, он будет использовать реализацию джедая.
Теперь предположим, что у меня есть событие под названием «UsingForce», которое вызывается при вызове метода «ForcePush», и я затеняю событие в производном классе (это потому, что «Yoda» имеет интерфейс «IForcePowers», который объявляет это событие), и каждый класс вызывает соответствующее событие.
Если у меня есть экземпляр «Йода», объявленный как тип «Джедай» (как указано выше), и я добавляю обработчик события «Использование силы» для «Джедай», а затем метод «ForcePush» вызывается в « Йода, будет ли достигнут этот обработчик событий?