А в чём проблема? Делаешь MyB, в котором оверрайдишь единственный метод onCommit, и от него наследуешь C. Единственный в данном случае правильный вариант, ИМХО. Какие-то хаки через те же рефлекшнс может быть и возможны, но очень уж черезжопные.
А не, сорри, вызова onCommit из А в таком случае всё равно не выйдет, надо чтобы класс был extends A. Добавляй новый метод в Б, или копипасть код с введением интерфейса для совместимости двух вариантов Б.
Чего тут непонятного? У чувака есть класс1 в двоичном виде и код, реализующи класс2. Чувак хочет класс2, но с частичной регрессией. Вместо того, чтобы отрефакторить код, он пытается минимизировать свой вклад в кодовую базу.