Большинство языков могут делать это, но это часто приводит к снижению производительности. Например, вы можете изменить доступность частного конструктора в Java следующим образом.
Constructor constructor = MyClass.class.getDeclaredConstructor(paramTypes);
constructor.setAccessible(true);
MyClass instance = (MyClass)constructor.newInstance(params);
Посмотрите на методы, доступные для объекта класса на вашем любимом языке, и вы увидите несколько способов получить доступ к методам или полям, и, как только вы разберетесь с ними, вы можете злоупотреблять ими по своему усмотрению.