Есть классы А и В. В наследуется от А. В классе А есть метод doSomething(), а в В он переопределен. Далее есть код. А a = new B(); a.doSomething(); Какой метод вызовется? Скорее всего переопределеный(но поправьте если не так), но есть более важный вопрос. На каком то из лекций было сказано что: SomeClass cl = new SomeClass(); cl.someMethod(); // то же самое что и SomeClass.someMethod(cl); Что происходит в примере вопроса? B.doSomething(a); ? Если да, как java понимает что именно В? Ведь переменная типа А. Как там все устроено? Что из себя представляет объект класса в памяти?