Manager()-->Component()-->Manager.startUp(..).在调Component()时,会给一个this指针,该指针指向Manager,所以Component()的this.startUp()实际就是Manger的startUp().这是一般的OO概念,一般书上都有的.你可以在两个startUp()中加上打印语句验证一下.
解决方案 »
- java的web项目spring线程socket序列化问题,求高手帮忙
- 学习jstatd的问题
- 这个报错有人知道为什么吗?哭死啦。。。。。5555
- 命令怎样输入汉字
- 在线等,马上给分!急!用ftp把一台Linux机器上的一个文件下载到本地,修改后再上传回去?java怎么做?
- 两个.java文件是有联系的,其中的一个调用另外的一个,这样的程序如何执行?
- 请各位前辈看一下!
- 那里有solaris/linux上,实现ping和traceroute命令的source code? 送200分
- 到底用那个更有效?
- 我发现《Think in java》有些细节并没提到,我是初学者,有没有详细一点的书,
- 关于JAVA线程互作的问题
- Exception in thread "main" java.lang.OutOfMemoryError
)基类的构造函数应该先调用.所以还得从其它方面着想.
很怪!!!!
class Base {
Base() {
System.out.println("Base");
method();
}
void method() {
System.out.println("Base method");
}
}class Child extends Base {
Child() {
System.out.println("Child");
}
void method() {
System.out.println("Child method");
}
public static void main(String[] args) {
new Child();
}
}
结果:
Base
Child method
Child如果把下边的method()去掉,结果:
Base
Base method
Child
在派生类的构造函数调用之前, 派生类的startUp()函数被调用===>我也是这意思,一点不怪啊.应该说是先调用派生类的构造函数A,但在执行A之前,须调用基类的构造函数B,等到B执行完了,再执行A的内容.
我其实觉得这里的关键是不是就在于看你实例化的对象是什么,而且在对象的一次实例化过程中,所调用的任何方法前始终都会加上this关键字,即使是在它的超类中。
我的这样理解应该是对的把!
谢谢,HelpAll了,记得我以前也曾经得到你的多次帮助,太感谢了!!!
我觉的是只要是子类中有的方法,那它就覆盖超类(父)中的方法!而调用子类中的,不就完了吗?
void startUp()不是构造函数,为什么也被调用了???