А почему бы не сделать, чтобы класс реализовывал два интерфейса? Ну или даже один - класс со всеми методами и интерфейс с "совсем публичными методами".
interface A{ int getX(); }
class B implements A {
private int x;
int getX(){return x;}
void setX(int v){x = v;}
}
Наружу в явном виде класс B не отдавать, говорить, что это просто "какая-то реализация" интерфейса А. В ядре хранить его именно как объект класса B и вызывать что хочется.