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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

继承中父类为static的方法时为什么无法覆盖?

6 个回复

倒序浏览
复写的方法怎么样才会存在jvm中呢?只有在创建对象时,才存在覆盖,对象实体在堆中,
用static修饰的方法存在方法区,类加载的时候就存在了,如果要覆盖,对象都还没创建,请问去覆盖谁
回复 使用道具 举报
在我看来, 可以通过内存的分析来理解, 首先,当子类继承父类的时候, 调用父类的方法,必须先要创建子类对象才可以调用,在内存中堆空间中,分配了一块区域来存放,但是父类中的成员方法如果是静态的话,静态是随着类的加载就已经加载了,在创建对象之前,这样是无法办到的,因此就无法覆盖父类中的静态方法了,
回复 使用道具 举报
好像明白点什么
回复 使用道具 举报
静态方法是在编译时就绑定的
回复 使用道具 举报
静态方法和private方法不让覆盖的
回复 使用道具 举报
楼上说的很清楚了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马