Java: ООП
Теория: Наследование
!vimeo!(788123414)
В Java наследование позволяет создавать новые классы на основе существующих, что упрощает процесс разработки и повторного использования кода. Класс наследник наследует все поля и методы класса родителя и может также добавлять новые поля и методы или переопределять существующие
Синтаксис
В Java наследование реализуется с помощью ключевого слова extends, которое позволяет одному классу наследовать свойства и методы другого класса
В Java ключевое слово super используется для обращения к классу родителю из класса наследника. Оно позволяет вызывать методы родительского класса. Например, если в классе наследнике переопределен метод, то с помощью super можно вызвать исходный метод класса родителя
Абстрактные классы
В Java абстрактные классы используются для определения общих свойств и методов, которые могут быть унаследованы другими классами. Абстрактный класс объявляется с помощью ключевого слова abstract и может содержать как абстрактные, так и неабстрактные методы, а также поля. Абстрактные классы не могут быть инстанцированы самостоятельно и предназначены для использования в качестве базовых классов для других классов
Не наследуемые классы
Ключевое слово final в Java используется для обозначения неизменяемости. Оно может применяться к переменным, методам и классам. Это позволяет создавать более безопасный и предсказуемый код, предотвращая нежелательные изменения и расширения
Если переменная объявлена как final, ее значение нельзя изменить после инициализации. Если метод объявлен как final, его нельзя переопределить в подклассах.
Если класс объявлен как final, он не может быть унаследован
Модификаторы доступа
В Java модификаторы доступа используются для определения уровня доступа к классам, методам и полям, что позволяет контролировать, кто может использовать или изменять эти элементы. Существует четыре основных модификатора доступа: public, private, protected и отсутствие модификатора (по умолчанию), каждый из которых определяет свой уровень доступа
Виды модификаторов:
- private - доступно только внутри класса
- package visible (default) - доступно только из классов, лежащих в одном пакете с исходным классом.
- protected — доступно внутри класса и внутри классов-наследников.
- public — доступно из любых других классов.
Иерархия классов
В Java все классы неявно наследуются от класса Object, который является корнем иерархии классов. Это означает, что каждый класс в Java наследует методы, определенные в Object, такие как toString(), equals(), hashCode() и clone(), что обеспечивает единый интерфейс для работы с объектами. Благодаря этому, разработчики могут использовать эти методы для сравнения объектов, получения строкового представления и других операций, не заботясь о конкретной реализации класса. Это также позволяет использовать полиморфизм, так как объекты различных классов могут быть обработаны как объекты типа Object.



