Знакомство с ООП

  • 18
  • Недоступен
Знакомство с ООП

18
Опрос
Знакомство с ООП,  18 уровень,  9 лекция
Недоступен
Знакомство с ООП
Знакомство с ООП
Комментарии (11)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Валерий Backend Developer в Mriya Resort&Spa
10 октября, 14:56
Можно ли в переменную класса-наследника присвоить ссылку на объекта базового класса? Ответил, что можно при условии, что нужно выполнить явный каст. Опрос показал не верный ответ...
public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Cat cat = (Cat) animal;
        cat.sound();
    }
}
В IDE проверил, все работает
Anonymous #2539565
Уровень 29, Минск, Беларусь
10 июля, 17:58
исправьте во втором вопросе, в варианте ответа: Да, но нуЖно явно указать приведение типа (пропущена буква "ж"). В шестом вопросе так же неверное слово - Создать объекты абстрактного класса...
София Сафонцева
Уровень 31, Днепр, Украина
4 июля, 18:09
Подскажите, для чего используется переменная super?
K.
Уровень 27, Москва
21 июня, 15:26
В шестом вопросе опечатка: абсстрктного вместо абстрактного
Владислав Журавский веб программист в фриланс
16 июня, 08:25
И почему в переменную класса-наследника нельзя присвоить ссылку на объекта базового класса? Я могу создать базовый класс Cat и класс-наследник Tiger в классе. В классе Tiger создаю переменную с типом Cat и спокойно передаю туда ссылка на объект класса-наследника
K.
Уровень 27, Москва
12 июля, 05:34
Так вы сами пишете "В классе Tiger создаю переменную с типом Cat и спокойно передаю туда ссылка на объект класса-наследника". А в вопросе спрашивается, а в вопросе "Можно ли в переменную класса-наследника присвоить ссылку на объект базового класса?"
Anonymous #2749315 Frontend Developer
31 августа, 16:51
На "слух", действительно, бывает сложно понять суть вопроса. Открываем IDE и сразу становится всё понятно: // Tiger.java class Cat {} public class Tiger extends Cat { public static void main(String[] args) { System.out.println("Поехали..."); Tiger tiger = new Tiger(); // переменная наследника Cat cat1 = new Cat(); // переменная базового класса Cat cat2 = new Cat(); // переменная базового класса cat1 = tiger; // так можно // tiger = cat2; // если раскомментировать, то будет ошибка компиляции tiger = (Tiger) cat2; // ошибка во время исполнения // (строка "...приехали." не выведется, хоть код и скомпилируется) System.out.println("...приехали."); } }
Владислав Журавский веб программист в фриланс
16 июня, 08:22
Что вообще не так с вопросом "Что не может дать инкапсуляция"? Как по мне ответ про валидацию внутреннего состояния объекта и ответ с про контроль устанавливаемых значений кажется верным, но это не так
Mick
Уровень 19, Москва
25 августа, 11:03
Все с ним как раз так. В этом вопросе нужно выбрать, что НЕ может дать инкапсуляция. Первые 3 варианта она может дать, а 4-й - нет, по этому 4-й и будет правильным ответом. Так что вам правльно кажется, что и валидация состояния и контроль значений подходят))
Валерий Backend Developer в Mriya Resort&Spa
10 октября, 15:04
Согласен, варианты ответа какие-то воздушные и расплывчатые. В ступор вводят. Типо ошибка компиляции... Или внутренняя реализация класса... что вообще? причем здесь это.
Что нельзя делать с интерфейсом? (выберите неверное утверждение) Погуглил и вроде бы можно создавать анонимный объект класса. Там есть new interfaceName() вот здесь обсуждение этого случая Мне кажется некорректным вопрос. Ну и опечаток тьма, не аккуратно..(