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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

继承中,子父类的成员特点是什么?求教下大牛们这个重点内容该怎么回答呢?。。。还有就是在创建对象的时候会调用构造方法,调用构造方法又是给成员变量初始化。。。那是先初始化成员变量还是先执行构造方法里的代码块呢???这个问题太让我困惑了。。。{:2_39:}

9 个回复

倒序浏览
这问题有点点多啊
一般说到成员特点就是仨:
1.成员变量:子父类不同名就不说了;当子父类成员变量同名时,子类对象的寻找位置是:局部-子类成员-父类成员
2.成员方法:当子父类成员方法同名时,子类对象在调用时会先找子类再找父类
                  当需要进行重写时要注意:①父类私有方法不能被重写
                                                      ②子类方法的访问权限要大于等于父类方法的访问权限
                                                      ③静态只能重写静态
3.构造方法:子类初始化前会先执行父类初始化动作(子类构造中默认有一个super())
                  父类若没有无参构造,那要么使用super调用父类其他构造,要么使用this调用子类其他构造
                  
至于代码块的问题:我只知道  静态代码块>构造代码块>构造方法
到底是先初始化变量还是代码块就不是很清楚了,坐等大神解惑

点评

回复的很详细哦,不过要纠正一点就是静态是类的内容,静态的内容随着类的加载而加载,严格上不算是重写方面的内容哦。。。  发表于 2015-8-20 07:09
回复 使用道具 举报
成员变量属于构造代码块- -也就说是说,创建对象的时候成员变量是要比构造函数更优先初始化的。。
回复 使用道具 举报
实例变量的定义初始化先于构造器中的变量初始化,其实两者的地位是相同的,在编译完后都会进入名为init的方法中,但是定义初始化语句在先
回复 使用道具 举报
父类静态→子类静态→父类对象初始化→父类构造函数→子类对象初始化→子类构造函数
回复 使用道具 举报
楼上说的很详细,可以学习学习!
回复 使用道具 举报
先初始化成员   

点评

大牛,搞个代码验证一下如何?。。。-O-  发表于 2015-8-20 23:35
回复 使用道具 举报

简单
举个例子
        class father{         
        
              {   system.out.println("你好");  }      

                      }
      main(){
               new father();
}                                          那个{}相当于构造代码块,不属于方法,属于类中的一个成员  你测试一下就知道了   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马