Если у вас есть код, который должен попросить класс выполнить определенную операцию, но класс не предоставляет вашему коду средства для этого, тогда класс не соответствует вашим требованиям к кодам.
Это как сказать, что у меня есть Автомобиль (Автомобиль) с защищенным рулевым колесом, поэтому я не могу получить к нему доступ. Машина мне не нужна.
Либо сделайте эти члены публичными (или, по крайней мере, внутренними) и используйте их, либо исключите класс и используйте тот, который дает вашему потребляющему коду необходимые функции.
Возможно, вы действительно ищете интерфейс. Интерфейс содержит членов, в которых нуждается ваш код, и вы реализуете этот интерфейс в своем классе. Преимущество здесь в том, что ваш класс может определить, что к членам обращаются через этот интерфейс, а не через наследующий подкласс.