DAS> Как сделать, чтобы вне зависимости от переданного класса, вызывались методы класса base.
Никак. Редизайнь
В java "не виртуально" вызываются статические методы и final методы (а значит private тоже).
Ты лезешь во внутненнюю реализацию объекта, пытаешься использовать свое знание того факта, что он чей-то наследник. Это не есть правильно как мне кажется. Плюс в java принято "специфицировать" API с помощью интерфейсов.