类是对象,类是java.lang.Class类的实例对象
package com.bean;// 创建一个协商好的接口public interface IWordAble { public void start();}package com.bean;// 实现接口public class Excel implements IwordAble{ @Override public void start() { System.out.println("启动文档"); System.out.println("结束文档"); }}package com.bean;// 实现接口public class Word implements IwordAble{ // 成员变量 public int aaa; public int bbb; @Override public void start() { System.out.println("世界开始"); System.out.println("世界结束"); } public void cond(int n){ // 方法1 } public Word(){ // 无参构造方法 } public Word(int a){ // 有参构造方法 }}package com.shixin;import com.bean.IwordAble;public class ClassDemo2 { public static void main(String[] args) { /** * Class.forName("类的全称"); * 不仅表示了类的类类型,还代表了动态加载类 * 编译时刻加载类是静态加载类 * 运行时刻加载类是动态加载类 */ /** * new 对象是静态加载类 * 在编译时刻就需要加载所有可能使用到的类 * 通过动态加载类可以解决这个问题 */ // Word w = new Word(); 没有导包的话会报错 try { // 使用动态加载 Class w = Class.forName("com.bean.Word"); // 通过类类型创建创建类对象 // 强转成协商好的接口 IwordAble iw = (IwordAble) w.newInstance(); iw.start(); Class ex = Class.forName("com.bean.Excel"); // 通过类类型创建创建类对象 // 强转成协商好的接口 IwordAble iex = (IwordAble) ex.newInstance(); iex.start(); } catch (Exception e) { } }}新闻热点
疑难解答