これが機能する理由:
NormalChair nc = new NormalChair("a", 4);
System.out.println(nc.getName());
出力:
そして、これはしません:
Object nc_ref = Class.forName("test.NormalChair").getConstructor(String.class, Integer.class).newInstance("a",4);
Method m_get = nc_ref.getClass().getDeclaredMethod("getName");
System.out.println(m_get.invoke(nc_ref));
私はこれを得る:
Exception in thread "main" java.lang.NoSuchMethodException: test.NormalChair.<init>(java.lang.String, java.lang.Integer)
at java.lang.Class.getConstructor0(Class.java:2800)
at java.lang.Class.getConstructor(Class.java:1708)
at test.Test.main(Test.java:37)