La solution à votre problème est en fait très simple, vous appelez Instruction.executeQuery(String) lorsque vous souhaitez appeler PreparedStatement.executeQuery() -
this.stmt = con.prepareStatement(sql); // Prepares the Statement.
stmt.setInt(1, randNum); // Binds the parameter.
// return this.stmt.executeQuery(sql); // calls Statement#executeQuery
return this.stmt.executeQuery(); // calls your set-up PreparedStatement