Наследование в Java имеет несколько отличий от языков C / C++
В этом уроке рассмотрим на примере
#java #урокиjava #javaMarshal
Подписывайтесь в телеграм: https://t.me/leshamarshal
Все уроки в плэйлисте:
• Уроки Java для начинающих / #1 - Прог...
Наследование является неотъемлемой частью Java. При использовании наследования вы говорите: Этот новый класс похож на тот старый класс. В коде это пишется как extends, после которого указываете имя базового класса. Тем самым вы получаете доступ ко всем полям и методам базового класса. Используя наследование, можно создать общий класс, которые определяет характеристики, общие для набора связанных элементов. Затем вы можете наследоваться от него и создать новый класс, который будет иметь свои уникальные характеристики. Главный наследуемый класс в Java называют суперклассом. Наследующий класс называют подклассом. Получается, что подкласс - это специализированная версия суперкласса, которая наследует все члены суперкласса и добавляет свои собственные уникальные элементы. К примеру, в Android есть класс View и подкласс TextView.
Так, один класс может "наследовать" характеристики другого - его методы и переменные.
Класс, являющийся основой, называют: базовым, супер, родительским.
Класс, который создают, называют: потомок, наследник или производный класс.
Пример
Представим, что у нас есть класс Dog. Что есть у каждой собаки? Четыре лапы, один хвост - и еще они умеют гавкать и вилять хвостом.
А теперь представим, что мы хотим создать классы для разных пород - овчарок, бульдогов и болонок.
У всех овчарок, бульдогов и болонок тоже будет четыре лапы и хвост, они тоже будут гавкать и вилять хвостом.
Конечно, мы можем просто брать и копировать эти методы и переменные в каждый класс. Но зачем? Мы можем использовать наследование.
Если мы сделаем все классы пород наследниками класса Dog, они будут иметь доступ ко всем его методам и переменным автоматически. Ну, почти ко всем.
Естественно, сама Джава тоже использует механизм наследования. Например, все классы языка наследуют класс Object, а классы ArrayList и LinkedList - класс List.
Как наследовать?
Правила наследования
Правило 4. Вызываем методы родителя через ключевое слово super.
Представим, что Вы хотите изменить метод родительского класса совсем чуть-чуть - буквально дописать пару строк. Тогда в своем методе мы можем вызвать родительский метод с помощью ключевого слова super.
Например, у нас есть класс Dog с методом voice():
Правило 1. Наследуем только один класс.
Java не поддерживает наследование нескольких классов. Один класс - один родитель.
Обратите внимание - нельзя наследовать самого себя!
Правило 2. Наследуется все кроме приватных переменных и методов.
Выше мы говорили, что класс-наследник будет иметь доступ ко всем переменным и методам родителя. Это не совсем так.
На самом деле, все методы и переменные, помеченные модификатором private, не доступны классу-наследнику.
Правило 3. Переделать метод класса-родителя.
Представим, что мы наследуем класс, но нам нравится не все, что мы унаследовали. Допустим мы хотим, чтобы определенный--- метод работал не так, как в родителе.
Для того, чтобы переопределить метод класса-родителя, пишем над ним @Override:
Наследование - это просто.
Для того, чтобы унаследовать класс, нужно использовать ключевое слово extends:
Правило 5. Запрещаем наследование.
Если Вы не хотите, чтобы кто-то наследовал Ваш класс, поставьте перед ним модификатор final. Например:
Информация по комментариям в разработке