在new创建对象时,首先对对象属性和初始化块分配内存,并执行默认初始化。如果存在父类,则先为父类对象属性和初始化块先分配内存并执行初始化,然后执行父类构造器中的初始化程序,接着才开始对子类的对象属性和初始化块执行初始化。
3. 继承中的this和super
当对象属性和方法中的局部变量名称相同时,在该方法中需要显式的使用this作为主调,以表示对象的属性,若不存在此问题,可以不显式的写this。其实,其牵涉到的一个问题就是变量的查找规则:先局部变量 => 当前类中定义的变量 => 其父类中定义的可以被子类继承的变量 => 父类... super表示调用父类中相应的属性和方法,在方法中,若需要调用父类的方法时,也一定要写在第一行。当重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变,例如,父类中的方法修饰权限为protected,继承后子类中的方法的修饰权限只能修改为public,不能修改为private。
原文:http://blog.csdn.net/aoshilang2249/article/details/45974001