Новичок
13 уроков
Курс
Java для Android-разработчиков
Курс даст необходимую подготовку в языке Java для желающих изучать Android. В первой части мы начнём с нуля, рассмотрим основные возможности языка, с тем, чтобы после этого можно было смело приступать к Android. Для тех, кто в процессе работы поймет, что ему недостаточно знаний по Java, будет вторая часть курса, там мы углубимся в ООП, коснёмся теории алгоритмов и рассмотрим кое-какие продвинутые возможности Java

#6 — Наследование и основные принципы ООП

Всем здравствуйте! На этом видеоуроке мы продолжаем курс подготовки будущих java-разработчиков. Мы рассмотрим основные принципы ООП и подробно остановимся на одном из них – наследовании.

На прошлом уроке мы говорили с вами о классах и объектах. И, возможно, вам не совсем понятно, что в этом крутого. Давайте рассмотрим такой пример.

Допустим, перед нами встала задача описать класс «Автобус», который тоже умеет ехать и дополнительно у него есть пассажирские сиденья. Для этого создадим класс Bus, в котором опишем функциональность Car и добавим свойство «пассажирские сиденья». Чтобы не дублировать один и тот же код, можно использовать механизм наследования. Давайте рассмотрим, как это можно сделать.

Пояснения к коду

С помощью ключевого слова extends мы наследуем класс Bus от Car. Это значит, что у класса Bus, кроме полей year и speed, есть дополнительное поле seatsCount. У класса Car есть конструктор, который обязательно необходимо вызвать в конструкторе класса Bus с помощью функции super(), указав в нее параметр. Иначе компилятор покажет ошибку.

Аналогично мы можем описать класс Truck – грузовик, у которого есть тоже своя дополнительная функциональность, связанная с тяжестью грузов.

Создав иерархию классов, давайте ей воспользуемся.

Пояснения к коду

В первых двух строках мы объявляем класс Car, но помещаем в него объект типа Bus. На этапе компиляции при обращении к дополнительному полю объекта Bus будет выведена ошибка.

Второе, если у нас есть переменная типа Bus, то мы не можем записывать в нее объекта типа Car. Иначе компилятор также выдаст ошибку.

Третье, если у нас есть переменная типа Truck, то мы можем пользоваться полями или методами базового класса и класса наследника.

Что еще полезного дает нам объектно-ориентированное программирование?

Допустим, у нас есть автобусы, грузовики, машины и автомастерская, гле их можно чинить. Для этого реализуется функция repairCar, которая чинит объекты типа Car. Мы можем вызвать эту функцию для всех типов объектов нашей программы. Как это реализовано? Мы изменяем поле, которое есть у всех машин – year. А также мы можем проверить тип машины, используя оператор if и слово instanceof. Если условие верно, выполнить какие-то действия для данного типа машин. Не забудьте привести объект типа Truck к типу Car.

Три принципа ООП: наследование, полиморфизм, инкапсуляция

На собеседованиях часто спрашивают три основных принципа ООП: наследование, полиморфизм и инкапсуляция. Наследование – получение базового функционала для новых классов. Второе слово — полиморфизм, в нашем примере это функция repairCar. Это означает, что мы можем одним и тем же алгоритмом обрабатывать объекты разных типов. Третье ключевое слово – инкапсуляция или сокрытие данных. В нашем примере метод drive скрыт от внешнего пользователя, мы вызываем его независимо от того, что в нем находится.

Надеемся, вам понравился этот видеоурок. Ставьте лайки, задайте вопросы.

Приятного всем просмотра! Учитесь с удовольствием! Всегда ваш LoftBlog.

Материалы к уроку:
Делись:

Оставь комментарий!

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

Рекомендуемые курсы