【发布时间】:2011-07-08 00:07:58
【问题描述】:
我即将在我的公司(我是一名实习生)上做一个关于 Java 继承的演讲。 我想我想通了,我也知道如何使用它。但有一件事不太确定。 存储中存储的方法在哪里。对象如何知道方法在哪里?
例如:
我们有这门课。
class Animal {
private String desc1;
protected String desc2;
public void breath() {
}
public void eat() {
}
}
还有这个类:
class Dog extends Animal() {
public void bark() {
}
}
我们现在创建一个 Dog 类的 Object:
狗狗 = 新狗();
所以现在我的问题是:
类被加载到堆中。所以 Dog 和 Animal 在堆中。 (编辑:错了,类不会加载到堆中,请看下面的答案。)。
所以,假设我们制作dog.bark()。
dog 如何知道 bark 方法在 Heap 中的位置?知道 Dog 类在哪里吗?
接下来我们制作dog.eat():
那么当狗知道狗在哪里时,狗知道动物在哪里还是狗知道动物在哪里?
知道我的意思是它在堆上有一个地址。
当我覆盖一个方法时会怎样?存储在哪里?
感谢您的帮助。
【问题讨论】:
标签: java class object storage heap-memory