有这样一个代码:抽象类 abclassA:
存在方法f更新(),
然后接收方法的返回值,做异常处理。子类classb:
继承上面的父类,
override [f更新()]方法,在这个方法中做实际的更新处理操作。看到这后有个疑问,java在执行这种继承关系时,代码是按照怎样一个顺序执行的?实际应用当中,肯定是生成子类的实例,然后掉子类的[f更新()]方法,并传入相关参数。
那么,代码是先把父类这层执行完然后再一层一层的执行子类?
还是执行到父类的[f更新()]时,再一层一层的往下执行子类代码,直到最后那个子类后,然后再一层一层返回上一级,执行未执行完的代码?
存在方法f更新(),
然后接收方法的返回值,做异常处理。子类classb:
继承上面的父类,
override [f更新()]方法,在这个方法中做实际的更新处理操作。看到这后有个疑问,java在执行这种继承关系时,代码是按照怎样一个顺序执行的?实际应用当中,肯定是生成子类的实例,然后掉子类的[f更新()]方法,并传入相关参数。
那么,代码是先把父类这层执行完然后再一层一层的执行子类?
还是执行到父类的[f更新()]时,再一层一层的往下执行子类代码,直到最后那个子类后,然后再一层一层返回上一级,执行未执行完的代码?
解决方案 »
- 请教个Scanner的问题
- java中如何添加org.apache.batik这个包(在线等待 急 速度)
- 如何将char[]转换成String类型的数据
- 高分求<手写Java:高手养成之路>一书
- 你认为 java 比较好的特性或者功能有哪些?
- 有人说internet环境下的socket连接不稳定,是真的吗?
- 各位老大,帮忙喽!
- java831(希望) sikuan(葫芦)qxjavajavak k_wyx(桃花岛) xmvigour 近来领分!
- 请各位高手指点一下该怎么作?(200分送上)
- java
- 急如何用SWT将10个按钮排列成圆形
- String a=new String("3"+"4")创建了几个对象?
如果是调用子类的f方法,除非该子类的f方法了显式地调用父类的f,即super.f,否则是不会执行父类的f的,这就是所谓的方法重写,即子类改写了父类(可以完全跟父类毫无关系)
有时候是:
父类 A = new 子类();这是父类变量指向子类的实例,这样调用的方法就是子类重写后的方法。
如果是:
父类 A = new 父类();这是直接用的父类对象的实例,那么调用的是父类的方法。lz所说一层层往上调用的是子类中的构造函数。在子类构造函数执行的时候是先执行父类的构造器。