【发布时间】:2011-02-20 23:18:25
【问题描述】:
最近我经历了继承的概念。
众所周知,在继承中,superclass 对象在 subclass 对象之前创建/初始化。所以如果我们创建一个subclass 的对象,它将包含所有超类信息。
但我一度陷入困境。
超类和子类方法是否存在于单独的调用堆栈中?
如果是这样,是否有任何 specific reason 相同?
如果不是这样,为什么它们没有出现在同一个调用堆栈上?
例如
// Superclass
class A {
void play1( ) {
// ....
}
}
// Subclass
class B extends A {
void play2( ) {
//.....
}
}
那么上述两种方法,即play1( ) 和play2( ) 是否出现在单独的调用堆栈上?
谢谢。
【问题讨论】:
-
你有什么理由认为他们可能在不同的堆栈上?鉴于超类 init 肯定需要在子类 init 之前完全完成,无论如何它都是串行的,不是吗?
标签: java inheritance callstack