黑马程序员技术交流社区

标题: Java中继承的相关疑问。。。求大牛指教下 [打印本页]

作者: 福娃(小白)    时间: 2015-8-20 00:23
标题: Java中继承的相关疑问。。。求大牛指教下
继承中,子父类的成员特点是什么?求教下大牛们这个重点内容该怎么回答呢?。。。还有就是在创建对象的时候会调用构造方法,调用构造方法又是给成员变量初始化。。。那是先初始化成员变量还是先执行构造方法里的代码块呢???这个问题太让我困惑了。。。{:2_39:}
作者: 大木木    时间: 2015-8-20 01:01
这问题有点点多啊
一般说到成员特点就是仨:
1.成员变量:子父类不同名就不说了;当子父类成员变量同名时,子类对象的寻找位置是:局部-子类成员-父类成员
2.成员方法:当子父类成员方法同名时,子类对象在调用时会先找子类再找父类
                  当需要进行重写时要注意:①父类私有方法不能被重写
                                                      ②子类方法的访问权限要大于等于父类方法的访问权限
                                                      ③静态只能重写静态
3.构造方法:子类初始化前会先执行父类初始化动作(子类构造中默认有一个super())
                  父类若没有无参构造,那要么使用super调用父类其他构造,要么使用this调用子类其他构造
                  
至于代码块的问题:我只知道  静态代码块>构造代码块>构造方法
到底是先初始化变量还是代码块就不是很清楚了,坐等大神解惑
作者: 黄蒙    时间: 2015-8-20 07:46
成员变量属于构造代码块- -也就说是说,创建对象的时候成员变量是要比构造函数更优先初始化的。。
作者: zhao1991    时间: 2015-8-20 09:25
实例变量的定义初始化先于构造器中的变量初始化,其实两者的地位是相同的,在编译完后都会进入名为init的方法中,但是定义初始化语句在先
作者: pengbeilin    时间: 2015-8-20 10:33
父类静态→子类静态→父类对象初始化→父类构造函数→子类对象初始化→子类构造函数
作者: kevin986745zk    时间: 2015-8-20 10:35
楼上说的很详细,可以学习学习!
作者: boboyuwu    时间: 2015-8-20 10:39
先初始化成员   
作者: boboyuwu    时间: 2015-8-21 09:59
boboyuwu 发表于 2015-8-20 10:39
先初始化成员

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

                      }
      main(){
               new father();
}                                          那个{}相当于构造代码块,不属于方法,属于类中的一个成员  你测试一下就知道了   





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