Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 104

Наследование и полиморфизм

20.07.2018, 19:43. Показов 3437. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Недавно на собеседовании спросили два таких вопроса, на которые я протупил и до сих пор не пойму ничего:

1. Есть класс А, есть его наследник - класс В. У класса А есть методы m1() и m2(). Класс В переопределяет метод m2() и добавляет к себе метод m3():
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//A.java
public class A {
    void method1() {
        System.out.println("This is a method1");
    }
    
    void method2() {
        System.out.println("This is a method2");
    }
}
 
//B.java
public class B extends A {
    void method2() {
        System.out.println("This is a method2 from B class");
    }
    
    void method3() {
        System.out.println("This is a method3");
    }
}
 
//Coco.java
public class Coco {
    
 
    public static void main(String[] args) {
        A a = new B();
        a.method1();
        a.method2();
        a.method3(); // ошибка компиляции
 
    }
}
Вопрос был такой: что будет при вызове этих методов, как представлено в методе main(). Я не считал себя прям совсем новичком в ООП, но этот вопрос меня смутил. Я начал думать про позднее связывание в полиморфизме и, соответственно, сказал, что с учетом того, что методы non-static будут вызываться методы для объекта типа В. Верный ответ такой, что методы method1() и method2() вызываються, а method3() нет. Я не пойму, почему так? Почему позднее связывание тут не работает?

2. Из этого же первого вопроса: можно ли написать
Java
1
   Object a = new B();
и вызвать таким образом методы?
Я, честно говоря, запутался. Я рассуждал так: раз уж все классы неявно наследники класса Object, то почему бы так и не написать, действительно? В ответ на это меня спросили, а почему мы тогда везде не пишем Object? Почему существуют другие ссылочные типы? В моем примере нельзя писать Object, потому что в этом классе нет этих методов. Верно ведь?

В общем подскажите, какой ответ на эти вопросы. Я вроде понял наследование и полиформизм более-менее, но тут тупик.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2018, 19:43
Ответы с готовыми решениями:

Наследование/Полиморфизм
Есть туристическая фирма, которая была основана в Y году, и организует путешествия в N стран. Про каждую страну сохраняется информация: -...

Наследование и полиморфизм
Народ, помогите пожалуйста не знаю как вывести весь проект на консоль не создан главный класс Main , так как не знаю что туда пихать. Есть...

Наследование/Полиморфизм
Есть туристическая фирма, которая была основана в Y году, и организует путешествия в N стран. Про каждую страну сохраняется информация: -...

21
27.07.2018, 08:59
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от vvm28 Посмотреть сообщение
недопрограммист
очень сильное утверждение, что-то уже было такое в истории германии...
а так, все зависит от конторы.

0
27.07.2018, 09:50

Не по теме:

Цитата Сообщение от vvm28 Посмотреть сообщение
который не прошел и стал хлопушей.
это как?))) просто интересно

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2018, 09:50
Помогаю со студенческими работами здесь

Инкапсуляция, Полиморфизм, Наследование
import java.io.*; import java.util.*; public class Nasledovanie { public static void main(String args) throws Exception{ ...

Java наследование и полиморфизм
Определить иерархию амуниции рыцаря. Экипировать рыцаря. посчитать стоимость амуниции. Провести сортировку амуниции по весу. Найти...

Интерфейсы, наследование и полиморфизм
Доброго времени суток! Помогите, пожалуйста, исправить ошибку. Задание такое:"Реализовать абстрактные классы или интерфейсы, а также...

Про полиморфизм и возможно наследование
У Кея Хорстманна написанно: 5.1.6. Представление о вызовах методов Важно понять, каким образом вызов метода применяется к объекту....

Абстрактные классы, наследование, полиморфизм и интерфесы
Помогите, пожалуйста, решить задание. Реализовать абстрактные классы или интерфейсы, а также наследование и полиморфизм для следующих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru