java中的Process

java中的Process类是个抽象类,它里面的方法基本都是抽象的。。。。Runtime.exec("notepad")返回一个Process的实例,,为什么可以调用Process的抽象方法???它有子类吗??子类是哪个?

第1个回答  推荐于2018-04-09
Runtime.exec("notepad") 返回的Process实例是基于Process子类,这点无需质疑。
任何成功实例化的对象所属的类都是非抽象的实现类,抽象的方法已被实现。

如果想查找其真实子类,可通过:
System.out.println( Process实例引用.getClass().getName() ); // 详细可参考JAVA反射机制
或着 查源码/Debug 跟踪 Runtime.exec 方法的执行过程。

以上是我告诉你是些常用的技巧,这里根据我看到的源码说说:
Runtime.exec 实际上调用了 java.lang.ProcessBuilder 的实现,不懂的可查 API 文档;
而ProcessBuilder 内部调用 java.lang.ProcessImpl.start(...) 静态方法 返回1个 ProcessImpl实例;
ProcessImpl类 正好是 Process类 的子类。本回答被提问者和网友采纳
第2个回答  2013-05-08
说的太模糊,代码是什么追问

   Runtime run = Runtime.getRuntime() ; // 取得Runtime类的实例化对象
Process p = null ; // 定义进程变量
p = run.exec("notepad.exe") ; // 调用本机程序,此方法需要异常处理
p.destroy() ; // 结束此进程

相似回答