黑马程序员技术交流社区

标题: 关于反射的一个小问题 [打印本页]

作者: 冯佩    时间: 2013-2-20 14:09
标题: 关于反射的一个小问题
本帖最后由 冯佩 于 2013-2-20 14:13 编辑

public class Test
{
      public static void main(String[] args)throws Exception
      {
           Demo d = new Demo();  
           Method method = null;
           method = Demo.class.getMethod("method");
           method.invoke(d);  
      }
}
class Demo2
{
     public void method()
    {
         System.out.println("method run");
     }
}
class Demo extends Demo2
{
       public void function()
       {
           System.out.println("function run");
       }
}
如上代码,用反射通过子类Demo可以得到继承的父类Demo2的method方法,反射是如何在内存中实现这种记忆的?请帮忙分析一下反射对继承在内存中的具体实现。

作者: 杨玲    时间: 2013-2-20 14:18
。。。。那啥,继承。。这并不是什么记忆功能吧,在继承的时候,其实就是在父类的基础上再加上子类的特有属性嘛,大概的内存分配就是:父类空间+子类的空间,根据这个地址分配,难道在反射的时候的区分还会很困难?
作者: 胥文    时间: 2013-2-20 14:41
个人理解:
子类demo继承了父类demo2之后就有了method()的方法
而你通过反射得到的其实就是子类的method()方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2