A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯佩 中级黑马   /  2013-2-20 14:09  /  982 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冯佩 于 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方法,反射是如何在内存中实现这种记忆的?请帮忙分析一下反射对继承在内存中的具体实现。

3 个回复

倒序浏览
。。。。那啥,继承。。这并不是什么记忆功能吧,在继承的时候,其实就是在父类的基础上再加上子类的特有属性嘛,大概的内存分配就是:父类空间+子类的空间,根据这个地址分配,难道在反射的时候的区分还会很困难?
回复 使用道具 举报
个人理解:
子类demo继承了父类demo2之后就有了method()的方法
而你通过反射得到的其实就是子类的method()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马