Я собираюсь провести в своей компании (я стажер) презентацию о наследовании в Java. Думаю, я понял это, и я тоже знаю, как этим пользоваться. Но в одном нет уверенности. Где хранятся методики в хранилище. И как объект узнает, где находятся методы?
Например:
У нас есть этот класс.
class Animal {
private String desc1;
protected String desc2;
public void breath() {
}
public void eat() {
}
}
и этот класс:
class Dog extends Animal() {
public void bark() {
}
}
Теперь мы создаем объект класса Dog:
Dog dog = new Dog ();
Итак, теперь мои вопросы:
Классы загружаются в кучу. Итак, Собака и Животное находятся в куче. (РЕДАКТИРОВАТЬ: Это неправильно, классы не загружаются в куче, см. Ответы ниже.).
Итак, допустим, мы делаем dog.bark ()
.
Как собака узнает, где в куче находится метод лая? Знает, где класс Собаки?
Затем мы делаем dog.eat ():
Итак, когда собака знает, где находится Собака, знает ли собака, где находится Животное, или собака знает, где находится Животное?
Я имею в виду, что у него есть адрес, который находится в куче.
А как это когда перезаписываю метод? Где это хранится?
спасибо за помощь.