Connect with us

Обучение

Заметки Python #15: Наследование, инкапсуляция, полиморфизм

Копаем ООП еще глубже. Сейчас мы разберемся с таким понятием как наследование свойств классов, узнаем, что такое инкапсуляция, а также приведем пример полиморфизма

Наследование

Внутри класса можно создавать другие классы, а объекты нового класса могут наследовать свойства обоих классов. Продолжая параллель с алкоголем, это будет выглядеть так: мы создадим в напитках класс «juices» (соки) внутри класса «Drinks». Внутри нашего нового класса мы тоже можем использовать метод __init__ для того, чтобы добавить новое свойство в объект «Соки».

 

Результат:

Инкапсуляция

Инкапсуляция позволяет запретить доступ к какому-либо свойству объекта везде, кроме как класса, где он прописан. Т.е. изменить свойство или служебную переменную мы не сможем — мы явно указываем, что она необходима для работы только внутри конкретного класса. Первый способ — рекомендательный. Для этого в переменной добавляется символ подчеркивания, например: _volume вместо volume.

Но, несмотря на это, поменять её всё равно можно, хотя среда программирования и будет говорить, что это т.н. protected member. Чтобы окончательно исключить возможность редактирования необходимо поставить два нижних подчеркивания. Тогда переназначить её уже не будет возможности (на самом деле, возможность есть, но это довольно сложно)

Нижнее подчеркивание необходимо добавить везде, где встречается данное свойство или переменная в классе

Полиморфизм

Полиморфизм — разное поведение одного и того же метода в разных классах. Вот небольшой пример, как это работает в питоне:

 

Результат:

Click to comment

Leave a Reply

Ваш e-mail не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

.

Digital2.ru - тренды, IT, разработка, цифровая экономика

Connect
Подпишись на нас