Как происходит техническая работа наследования?

Я собираюсь провести в своей компании (я стажер) презентацию о наследовании в 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 (): Итак, когда собака знает, где находится Собака, знает ли собака, где находится Животное, или собака знает, где находится Животное? Я имею в виду, что у него есть адрес, который находится в куче. А как это когда перезаписываю метод? Где это хранится?

спасибо за помощь.

5
задан aioobe 3 March 2011 в 11:59
поделиться