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