будет ли больше памяти использоваться в куче (JVM), если у объекта больше родительского класса? [Дубликат]

Также, если вы используете сторонние библиотеки, убедитесь, что у вас есть правильные 32/64 битные файлы

1
задан VD' 27 November 2013 в 15:09
поделиться

3 ответа

Это все о Java inheritance и overriding. method() в родительском классе будет переопределяться по методу child.

System.out.println(((Child) p).x);// here you are invoking child 

Затем вы получите атрибуты ребенка.

И следующий - все о полиморфизме Java.

 ((Child) p).x // invoking object type, x=4 (object is child ) 

  p.x  // invoking reference type, x=5 (reference is parent)

Обратитесь к этим ссылкам и к этому .

0
ответ дан Community 24 August 2018 в 06:11
поделиться

, что наследуется?

Все общедоступные и защищенные методы наследуются в подклассе.

где в ячейке памяти?

Я написал сообщение в блоге об объекте создания объекта в Java. Я думаю, вы поймете это лучше.

почему первое syso дает 4 и второе дает 5?

Доступ к полям всегда разрешается на основе объявленного тип ссылки, а не фактический тип объекта. Таким образом, p.x получит доступ к полю Parent, поскольку объявленный тип p равен Parent. Принимая во внимание, что ((Child)p).x будет получать доступ к полю Child, поскольку у вас есть тип, отбрасывающий ссылку p на Child, и теперь рассматриваемый тип считается Child.

1
ответ дан Rohit Jain 24 August 2018 в 06:11
поделиться

В Java нет переопределения переменных и только переопределения метода.

    System.out.println(((Child) p).x);

Эта строка указывает точку p на Child и получает эту переменную x.

Строка, System.out.println(p.x); указывает, что печать Parent x

1
ответ дан Tim Sylvester 24 August 2018 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: