Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SCJP - Mock Test, не пойму почему?!! 
V
    Опции темы
Entwickler
Дата 14.11.2011, 15:14 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



Всем привет,

есть такой вопрос в Mock тесте на SCJP:

Number is the superclass over Integer, Float and so on.

What happens if you try to compile this code and run the method call() from the following class:

Код

public class Overload {

     String c;

     void m(Object o) {
          c = "Object";
     }

     void m(Number n) {
          c = "Number";
     }

     void m(Float f) {
          c = "Float";
     }

     void call() {
          m(null);
          System.out.println(c);
     }
}


Answers:

A - It prints Object
B - It prints Number
C - It prints Float
D - It prints Integer
E - It does not compile
F - It compiles, but leads to a RuntimeException


Правильный ответ: C. Почему?!!
PM MAIL   Вверх
jk1
Дата 14.11.2011, 15:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Java Language Specification
Цитата

If more than one member method is both accessible and applicable to a method invocation, it is necessary to choose one to provide the descriptor for the run-time method dispatch. The Java programming language uses the rule that the most specific method is chosen.


То есть выбирается самый конкретный (most specific, расположеный ниже всего в иерархии наследования) из доступных вариантов. Поскольку Float extends Number extends Object самым конкретным будет Float. Ради интереса добавьте вариант Double - код перестанет компилироваться, ведь в этом случае уже нельзя будет подобрать наиболее конкретный вариант.

Это сообщение отредактировал(а) jk1 - 14.11.2011, 15:44


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kemiisto
  Дата 14.11.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 5
Всего: 160



jk1, тут ещё важно, что тип данных null, null type, является подтипом всех ссылочных типов начиная с JLS3.
Цитата
The direct supertypes of the null type are all reference types other than the null type itself.


Это сообщение отредактировал(а) kemiisto - 14.11.2011, 16:33


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Entwickler
Дата 14.11.2011, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



super jk1... огромное спасибо...

почитал так же: What is a most-specific method?
PM MAIL   Вверх
Entwickler
Дата 14.11.2011, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



Всем спасибо ещё раз!!! (забыл пометить как решённый)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.