Наследование в Java. Просто и на примерах

Наследование является одним из основных понятий объектно-ориентированного программирования. Java поддерживает наследование и определяет отношение is-a между суперклассом и подклассом. Например, если подкласс Car (Автомобиль) унаследован от суперкласса Vehicle (ТранспортноеСредство), то это значит, что Car is-a (это тоже) Vehicle.

Наследование в Java — механизм, позволяющий создать новый класс из существующих классов.Наследование в Java является переходным, так что если Sedan (Седан) расширяет класс Car (Автомобиль), то это значит, что Седан также унаследован от класса Vehicle (ТранспортноеСредство). Таким образом Vehicle становится суперклассом как для класса Car, так и для класса Sedan.

Наследование широко используется в Java-приложениях. Хорошим примером будет класс Exception — его наследуют другие классы, чтобы создать более специфические классы ошибок.

В Java каждый класс неявно, но расширяет java.lang.Object класс, так Object-класс находится на верхнем уровне иерархии наследования в Java.

Простой пример реализации наследования в Java:

Animal.java

Класс Animal здесь является базовым. Теперь создадим класс Cat, который будет унаследован от Animal.

Cat.java

Ключевое слово extends используется в Java для реализации наследования.

Теперь давайте напишем простой тестовый класс, чтобы проверить некоторые методы класса Cat.

AnimalInheritanceTest.java

Результат выполнения программы:

Из результатов выполнения программы видно, что класс Cat не имеет метода getEats(), но он до сих пор работает, потому что это унаследован от класса Animal.

Важные моменты наследования в Java

  • Private-члены суперкласса недоступные для подклассов. Как и в нашем примере, переменная класс Animal noOfLegs недоступна для класса Cat. Однако эта проблема решается созданием методов getter и setter.
  • Подкласс с уровнем доступа default (по умолчанию) доступен другим подклассам только если они находятся в том же пакете! Подробнее о модификаторах доступа в Java читайте здесь.
  • Конструкторы суперкласса не наследуются подклассами.
  • Если суперкласс не имеет конструктора по умолчанию, то подкласс должен иметь явный конструктор. В противном случае он будет бросать compile time exception (исключение времени компиляции).
  • Java не поддерживает множественное наследование, поэтому подкласс может наследовать только один класс!

Следите за обновлениями на prologistic.com.ua

3 thoughts to “Наследование в Java. Просто и на примерах”

  1. whoah this blog is excellent i like reading your posts. Stay up the great pasitingn! You know, many people are hunting around for this info, you can aid them greatly.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *