Top.Mail.Ru
Ответы

Что такое наследование, полиморфизм и инкапсуляция в Java

я все понять не могу в чем суть этих штук. да, я знаю что это ООП, но челы на ютубе все как один: "ээээ как бы так сказать эээ нуууу аааааа как сказать то аааа" и толком ничего не объясняют. не отказался бы от того, если мне бы еще объяснили причем this в инкапсуляции

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
5мес

Наследование: берём существующий класс и создаём на его основе новый класс, добавляя новые поля и методы, заменяя методы исходного (родительского) класса собственным кодом. Длинные цепочки наследования создают большую головную боль (хрупкий код, который легко сломать и сложно читать), создавая куда больше проблем, чем решая. И при наличии в языке интерфейсов наследование не имеет смысла.

Инкапсуляция: изоляция компонентов программы (классов) друг от друга. Класс не может залезть внутрь другого класса и что-то там поменять. Каждый класс - чёрный ящик, реализующий замкнутый функционал и взаимодействующий с другими классами через вызовы методов. Мы можем как угодно менять код внутри класса, но пока сигнатуры публичных методов этого класса остаются неизменными, это никак не отразится на остальном коде программы.

Полиморфизм: когда один и тот же метод (определённый либо в интерфейсе, реализуемом классом, либо в родительском классе) в разных классах реализует разный функционал. Чтобы нарисовать фигуру, мы просто вызываем метод Draw класса, реализующего фигуру. И не важно, будет это класс Triangle или класс Square. Важно лишь то, что класс имеет метод Draw. А как именно будет нарисована фигура - это внутреннее дело класса (инкапсуляция), нас не касающееся.

Аватар пользователя
5мес

боже чел это ведь изи эм ну типо инкапсуляция это типо когда ты создаешь какой-то класс с каким то объектом и у него есть атрибуты и методы пон?

Аватар пользователя
Мыслитель
5мес

Инкапсуляция - сокрытие реализации.
Наследование - создание новой сущности на базе уже существующей.
Полиморфизм - возможность иметь разные формы для одной и той же сущности.
Можно и так сказать:
Инкапсуляция : объединение данных и методов, которые работают с этими данными, в одном классе и скрытие их от остального кода.
Наследование : возможность создавать новые классы на основе уже существующих и наследовать их свойства и методы.
Полиморфизм : возможность объектов с одинаковым интерфейсом иметь разные реализации методов.

Аватар пользователя
Профи
5мес

не лезь оно тебе не надо

Аватар пользователя
Знаток
5мес

Наследование — это механизм, при котором один класс (наследник) получает свойства другого класса (родителя). Это позволяет создавать иерархии классов с общими свойствами и методами.

Полиморфизм — это способность объектов разных классов иметь общий интерфейс и выполнять различные действия при вызове одного и того же метода. Это достигается благодаря наследованию и переопределению методов в классах-потомках.

Инкапсуляция — это процесс объединения данных и методов их обработки в одном классе. Это позволяет защитить данные от прямого доступа извне и обеспечивает безопасность и целостность данных внутри класса.