Предположим, что у некоторого класса B есть несколько закрытых полей x и y.Чтобы выполнить «свою работу», чтобы обеспечить желаемое поведение при вызове методов на B, эти поля, конечно, должны существовать в «области памяти», выделенной для экземпляра B.
Теперь, когда Bрасширяется на C, тогда, конечно, когда вы создаете экземпляр C, эти поля x и y также должны быть выделены.Вы правы в этом.
Но: это не означает, что вы создаете экземпляр "дополнительного" объекта B для C. Это просто означает, что когда JVM выделяет память для экземпляра C, она знает, что должно быть место дляунаследованные поля x и y.
И наконец: класс Object не имеет какие-либо поля.Поэтому нет никаких дополнительных затрат памяти «потому что что-то расширяет объект».