Простыми словами: Наследование в ООП
В прошлом посте мы рассказали про основные концепции ООП в общих чертах. Теперь давайте поговорим о них более конкретно и разберём первую — наследование.
Что такое наследование?
Наследование — это механизм, позволяющий одному классу наследовать свойства и методы другого класса. Это позволяет создавать новый функционал на базе существующего. У этого принципа есть два основных достоинства:
1. Повторное использование кода. Вместо того чтобы писать один и тот же код несколько раз, вы можете создать родительский класс с общей функциональностью и наследовать от него.
2. Упрощение структуры кода. Наследование помогает создать более упорядоченную структуру и улучшить читаемость кода.
Давайте рассмотрим простой пример с животными, где общие свойства и методы будут находиться в родительском классе.
Ключевые моменты в наследовании:
1. Конструктор родительского класса
Для инициализации объектов дочернего класса важно вызвать конструктор родительского класса. В Python это делается с помощью функции
2. Переопределение методов
Дочерний класс может переопределять методы родительского класса, изменяя их поведение.
3. Множественное наследование
Иногда подкласс может наследовать свойства и методы от нескольких родительских классов. Это полезно, но требует осторожности, чтобы избежать сложных зависимостей и конфликтов.
Возможно, вы сейчас задаётесь вопросом где же это применяется на практике? Например, тут:
1. Интерфейсы GUI. При разработке графических интерфейсов часто используют наследование для создания различных элементов интерфейса.
2. Системы управления пользователями. В системах управления пользователями можно использовать наследование для создания различных ролей с различными уровнями доступа.
3. Игровые приложения. В играх классы персонажей могут быть наследуемыми, чтобы создавать различные типы персонажей.
Наследование применяется практически везде, где это возможно. Чем быстрее вы поймёте его, тем скорее сможете раскрыть весь его потенциал.
#простымисловами #ооп
В прошлом посте мы рассказали про основные концепции ООП в общих чертах. Теперь давайте поговорим о них более конкретно и разберём первую — наследование.
Что такое наследование?
Наследование — это механизм, позволяющий одному классу наследовать свойства и методы другого класса. Это позволяет создавать новый функционал на базе существующего. У этого принципа есть два основных достоинства:
1. Повторное использование кода. Вместо того чтобы писать один и тот же код несколько раз, вы можете создать родительский класс с общей функциональностью и наследовать от него.
2. Упрощение структуры кода. Наследование помогает создать более упорядоченную структуру и улучшить читаемость кода.
Давайте рассмотрим простой пример с животными, где общие свойства и методы будут находиться в родительском классе.
# Родительский (суперкласс)
class Животное:
def __init__(self, имя, возраст):
self.имя = имя
self.возраст = возраст
def издать_звук(self):
raise NotImplementedError("Этот метод должен быть определён в подклассе")
def описание(self):
return f"{self.имя} — {self.возраст} лет"
# Дочерний класс Кот наследует от Животное
class Кот(Животное):
def издать_звук(self):
return "Мяу!"
# Дочерний класс Собака наследует от Животное
class Собака(Животное):
def издать_звук(self):
return "Гав!"
# Создаём объекты
кот = Кот("Мурзик", 3)
собака = Собака("Бобик", 5)
# Используем методы
print(кот.описание()) # Output: Мурзик — 3 лет
print(кот.издать_звук()) # Output: Мяу!
print(собака.описание()) # Output: Бобик — 5 лет
print(собака.издать_звук()) # Output: Гав!
Ключевые моменты в наследовании:
1. Конструктор родительского класса
Для инициализации объектов дочернего класса важно вызвать конструктор родительского класса. В Python это делается с помощью функции
super()
.class Животное:
def __init__(self, имя, возраст):
self.имя = имя
self.возраст = возраст
class Кот(Животное):
def __init__(self, имя, возраст, цвет):
super().__init__(имя, возраст)
self.цвет = цвет
кот = Кот("Пушок", 2, "серый")
print(кот.описание()) # Output: Пушок — 2 лет
print(кот.цвет) # Output: серый
2. Переопределение методов
Дочерний класс может переопределять методы родительского класса, изменяя их поведение.
class Животное:
def __init__(self, имя, возраст):
self.имя = имя
self.возраст = возраст
def издать_звук(self):
return "Звук животного"
class Кот(Животное):
def издать_звук(self):
return "Мяу!"
кот = Кот("Мурзик", 3)
print(кот.издать_звук()) # Output: Мяу!
3. Множественное наследование
Иногда подкласс может наследовать свойства и методы от нескольких родительских классов. Это полезно, но требует осторожности, чтобы избежать сложных зависимостей и конфликтов.
class Животное:
def дышать(self):
return "Дышу"
class Летать:
def летать(self):
return "Летаю"
class Птица(Животное, Летать):
def издать_звук(self):
return "Чирик"
птица = Птица()
print(птица.дышать()) # Output: Дышу
print(птица.летать()) # Output: Летаю
print(птица.издать_звук()) # Output: Чирик
Возможно, вы сейчас задаётесь вопросом где же это применяется на практике? Например, тут:
1. Интерфейсы GUI. При разработке графических интерфейсов часто используют наследование для создания различных элементов интерфейса.
2. Системы управления пользователями. В системах управления пользователями можно использовать наследование для создания различных ролей с различными уровнями доступа.
3. Игровые приложения. В играх классы персонажей могут быть наследуемыми, чтобы создавать различные типы персонажей.
Наследование применяется практически везде, где это возможно. Чем быстрее вы поймёте его, тем скорее сможете раскрыть весь его потенциал.
#простымисловами #ооп
❤8
Какая из концепций ООП обеспечивает объекту возможность изменять свое поведение в зависимости от того, как именно метод был вызван (с какими параметрами)?
Anonymous Quiz
13%
Наследование
71%
Полиморфизм
9%
Инкапсуляция
7%
Композиция
🔥7🤷♂3👎1
Forwarded from Инструменты программиста
This media is not supported in your browser
VIEW IN TELEGRAM
every-programmer-should-know | Каждый кодер должен знать
Интересная англоязычная подборка материалов про Computer Science. Неважно, какой ЯП вы используете, вам все равно стоит знать виды алгоритмов, структур данных, архитектуры и другую базу.
🏆 — интересно
🌭 — заездили
Цена: бесплатно
Репозиторий проекта
@prog_tools
Интересная англоязычная подборка материалов про Computer Science. Неважно, какой ЯП вы используете, вам все равно стоит знать виды алгоритмов, структур данных, архитектуры и другую базу.
🏆 — интересно
🌭 — заездили
Цена: бесплатно
Репозиторий проекта
@prog_tools
🏆18🌭1
Техническое собеседование: как пройти и подготовиться к нему
Что делать на техническом собеседовании? Главное — не паниковать, вы уже молодец, что нашли в себе смелость прийти и заявить о своих навыках. А остальные советы о том, как к нему готовиться, читайте в статье:
https://tproger.ru/articles/tehnicheskoe-sobesedovanie-kak-projti-i-podgotovitsya-k-nemu-erid-ljn8kkxme
#советы #собеседование
Что делать на техническом собеседовании? Главное — не паниковать, вы уже молодец, что нашли в себе смелость прийти и заявить о своих навыках. А остальные советы о том, как к нему готовиться, читайте в статье:
https://tproger.ru/articles/tehnicheskoe-sobesedovanie-kak-projti-i-podgotovitsya-k-nemu-erid-ljn8kkxme
#советы #собеседование
🤓2
Forwarded from Метод утёнка
С Днём знаний, друзья!
Мы все учились понемногу. Даже те, кто сегодня меняет сферу IT и целый мир.
В честь праздника подготовили для вас небольшой школьный альбом, в котором показали, что могли бы пожелать себе столпы IT-индустрии будучи выпускниками.
Мы все учились понемногу. Даже те, кто сегодня меняет сферу IT и целый мир.
В честь праздника подготовили для вас небольшой школьный альбом, в котором показали, что могли бы пожелать себе столпы IT-индустрии будучи выпускниками.
😁3👍1
А мы тут кое-что приготовили к началу учебного года! Сделали набор волшебных ластиков, который поможет вам избавиться от всего ненужного и громко заявить о вашем отношении к чему угодно!
👍6
Media is too big
VIEW IN TELEGRAM
Разработка и деплой сайта с нуля и анимацией
В этом видео вы узнаете, как создать сайт с большим количеством разной анимации, например, одной из самых популярных — parallax-эффект.
Вы научитесь работать с компонентами, используя библиотеку ReactJS, познакомитесь с Framer motion, организуете хранилище с Redux Toolkit (RTK), добавите контент через платформу Contentful и с помощью Graphql получите реальные данные на вашем сайте.
#видео #туториал #веб #react
В этом видео вы узнаете, как создать сайт с большим количеством разной анимации, например, одной из самых популярных — parallax-эффект.
Вы научитесь работать с компонентами, используя библиотеку ReactJS, познакомитесь с Framer motion, организуете хранилище с Redux Toolkit (RTK), добавите контент через платформу Contentful и с помощью Graphql получите реальные данные на вашем сайте.
#видео #туториал #веб #react
👍4🥰2
Forwarded from Нейроканал
Юный Михаил Шуфутинский тоже был с компьютером на ты. Сегодня, 3-го сентября, он ждет ваших фотографий в комментариях, чтобы состарить их через нейронки.
#кек
@neuro_channel
#кек
@neuro_channel
Почему вы должны попробовать Rust
Все, кто решил пойти в программировании, сталкиваются со сложностью выбора первого языка. Многие выбирают JavaScript, Python или Kotlin из-за их низкого порога входа.
Но на этот раз мы предлагаем вам обратить внимание на Rust. Недаром он попал в топ-3 языков программирования по популярности в 2024 году.
Подробнее о языке, его особенностях и преимуществах:
https://habr.com/ru/companies/huawei/articles/548808/
#rust
Все, кто решил пойти в программировании, сталкиваются со сложностью выбора первого языка. Многие выбирают JavaScript, Python или Kotlin из-за их низкого порога входа.
Но на этот раз мы предлагаем вам обратить внимание на Rust. Недаром он попал в топ-3 языков программирования по популярности в 2024 году.
Подробнее о языке, его особенностях и преимуществах:
https://habr.com/ru/companies/huawei/articles/548808/
#rust
👍2❤1