Class::newInstance() doesn't have any parameters (also, it's deprecated: better to use getConstructor() or getDeclaredConstructor() and call newInstance() on it).
Also, the generic agreement on your calls to makeAndPrint is failing.
This does what you wanted:
jshell> class Foo { }
|  modified class Foo
jshell> class Bar extends Foo { }
|  modified class Bar
jshell> class Baz extends Foo { }
|  modified class Baz
jshell> class Main {
   ...>   public static void main(String[] args) {
   ...>     makeAndPrint(Foo.class);
   ...>     makeAndPrint(Bar.class);
   ...>     makeAndPrint(Baz.class);
   ...>   }
   ...>
   ...>   public static void makeAndPrint(Class<? extends Foo> klass) {
   ...>     try {
   ...>       Object o = klass.newInstance();
   ...>       System.out.println("Created: " + o.toString());
   ...>     } catch (Exception e) {
   ...>       System.err.println("Failed: " + klass);
   ...>     }
   ...>   }
   ...> }
|  created class Main
jshell> Main.main(new String[]{})
Created: REPL.$JShell$11$Foo@6a4f787b
Created: REPL.$JShell$12$Bar@7d9d1a19
Created: REPL.$JShell$13$Baz@39c0f4a