Hola, bueno he estado probando tu ejemplo y no se la verdad que la clase entrada esta un poco extraña creada, porque ya al crear al objeto, directamente pides una cadena llamando al método "pedirCadena()" por este constructor:
 public Prueba ()  { //Constructor
        entradaTeclado="";
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
He realizado una prueba de tu clase y funciona bien, ¿podrías ponernos el trozo de código que intentas ejecutar tu?
Este es el main que yo he ejecutado y me ha servido: 
public static void main(String[] arg){
        
        System.out.println("Inserta una frase:");
        EntradaDeTeclado p =new EntradaDeTeclado();
        
        String cadena=p.getEntrada();
        System.out.println(cadena);
        
    }
Intenta eso, ponernos como intentas crear el objeto. Un saludo!
Nota: Ten en cuenta, que en el momento que llamas al constructor, ya el programa esta esperando que metas una cadena por teclado. A lo mejor es por eso por lo que piensas que no funciona.