Наследование C#
Все правильно делает. Тип указан как A, метод — виртуальный, иерархия метода кончается на B, создается подтип типа B. При вызове метода производится проверка перегрузок по иерархии наследования, где наиболее подходящая перегрузка — у класса B.
Все, спасибо, разобрался.