不仅仅表示了类的类型,还表示了动态加载类。输入类的路径,就可以获取到类的方法。在这里要区分编译和运行:
- 编译时加载类静态加载类
- 运行时加载类动态加载类
new创建对象是 静态加载类,在编译时就需要加载可能使用的类。
问:那么我们能不能在使用到类就进行加载?
答:使用动态加载类就可以完成。
举例:
Student student = new Student(); student.getStart();动态加载类
Teacher 和 Student 类必须实现 Person 接口,并重写start 方法。
举例:
分别创建两个类:
public class Teacher implements Person{ @Override public void getStart() { System.out.println("Teacher>>" + Teacher.class.toString()); } }
public class Student implements Person { @Override public void getStart() { System.out.println("Student>>" + Student.class.toString()); } }
并实现接口 Person,重写 start 方法:
public interface Person { void getStart(); }
运行一下测试类:
public class StudentTest { @Test public void getStart() { getStudent("com.java.Student"); } public void getStudent(String url) { try { Class> aClass = Class.forName(url); Person person = (Person) aClass.newInstance(); person.getStart(); } catch (Exception e) { e.printStackTrace(); } } }
打印结果:
Student>>class com.java.Student
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)