Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
38 / 2 / 0
Регистрация: 29.04.2011
Сообщений: 51

Для чего нужно наследование именно в таком виде?

19.10.2016, 21:29. Показов 1441. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.

Мне тут человек задал вопрос:
Для чего нужно наследование, если можно было бы просто объявить объект родительского класса внутри класса-наследника?
Мы оба являемся начинающими программистами (C++/Java) и, честно говоря, вопрос поставил меня в тупик. А правда, почему? Единственное, что я могу предложить: это просто немного удобнее. Есть ли какие-то другие аргументы, почему наследование реализовано именно как наследование? Было бы интересно посмотреть на конкретных примерах.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2016, 21:29
Ответы с готовыми решениями:

Для чего нужно protected и private наследование
для чего нужно protected и private наследование.

Как XML текст внести в документ ворда в таком же в виде как я его вижу в редакторе, а именно цвета параметров?
Нужно для курсовой.

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять.
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

7
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
20.10.2016, 09:06
Цитата Сообщение от zusicks438 Посмотреть сообщение
А правда, почему?
Потому что тогда тяжело будет наследоваться от абстрактных классов и вообще
работать с ними в полиморфном ключе. Что, если я не хочу включать в свой класс
объекты других классов, а хочу лишь переопределить у себя их виртуальные
методы и работать со всеми ними через указатель или ссылку на базовый класс?
Как в таком случае мне поможет включение объекта одного класса в другой?
1
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
20.10.2016, 10:19
Наследование - это один из методов повторного использования кода.

Пусть, например, мне нужен класс А2 - точно такой же, как класс А1, но с перламутровыми пуговицами. Если я использую наследование, то мне в классе А2 нужно описать только новую функциональность. Если я использую агрегирование (включаю объект класса А1 в класс А2), то у меня в классе А2 не появятся методы, которые есть в классе А1. Придётся для каждого из них писать обёртку-вызов.
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
20.10.2016, 23:30
Цитата Сообщение от Shamil1 Посмотреть сообщение
Придётся для каждого из них писать обёртку-вызов.
Только если язык не поддерживает автоматическое делегирование.
1
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
21.10.2016, 09:10
Цитата Сообщение от korvin_ Посмотреть сообщение
Только если язык не поддерживает автоматическое делегирование.
Тогда эти методы за нас напишет компилятор.
Что это за языки? Хочу почитать, как решают конфликт имён и другие проблемы.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
21.10.2016, 18:11
Цитата Сообщение от Shamil1 Посмотреть сообщение
Тогда эти методы за нас напишет компилятор.
Ну и что?

Цитата Сообщение от Shamil1 Посмотреть сообщение
Что это за языки?
Go, например.

Цитата Сообщение от Shamil1 Посмотреть сообщение
как решают конфликт имён
Какой конфликт имён?

Цитата Сообщение от Shamil1 Посмотреть сообщение
и другие проблемы
Какие?
1
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
21.10.2016, 18:25
Цитата Сообщение от korvin_ Посмотреть сообщение
Какой конфликт имён?
Спасибо. Дальше я сам найду и прочитаю.
0
Заблокирован
04.02.2017, 13:57
Цитата Сообщение от Shamil1 Посмотреть сообщение
Тогда эти методы за нас напишет компилятор.
не будет он ничего писать. Делегирование основано на том, что подкласс просто знает где искать запрашиваемые методы, а не содержит их в себе. Ему не нужно их дублировать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2017, 13:57
Помогаю со студенческими работами здесь

Как именно в методах расширения указать, что переходить нужно именно главный контроллер?
В проекте есть несколько Areas. Маршрутизация нстроена так (для наглядности сократил) public class RouteConfig { ...

Для чего используют наследование интерфейсов?
Всем привет. Я совсем недавно начал копать java и недавно увидел в коде интерфейс, который наследовал другой интерфейс. В...

Для чего нужны виртуальные функции и виртуальное наследование ?
Для чего нужны виртуальные функции и виртуальное наследование ? Я нашел не сколько статей но не все понял. Заранее спасибо!

Вставить между некоторыми цифрами 123456789 записанными именно в таком порядке знаки + и - так, чтобы значение получившегося выражения было число m
Дано натуральное число m. Вставить между некоторыми цифрами 123456789 записанными именно в таком порядке знаки + и - так, чтобы значение...

Ввести в окне имя, отчество и фамилию (именно в таком порядке) и преобразовать, чтобы получилось имя и фамилия
Нужно написать программу чтобы она умела: Ввести в окне имя, отчество и фамилию (именно в таком порядке) и преобразовать, чтобы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru