Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Проект 17: Наследование в ООП (Медиатека) 🎬📺

Консольное приложение для управления коллекцией фильмов и сериалов с использованием наследования.
Демонстрирует принципы ООП: наследование, переопределение методов, полиморфизм.

🎯 Что закрепляет

  • Наследование (class Child(Parent))
  • Вызов родительских методов через super()
  • Переопределение методов в дочерних классах
  • Полиморфизм (единый интерфейс для разных типов)
  • Интерактивное меню с валидацией ввода

📋 Функционал

1. Базовый класс Media

  • атрибуты: title, year, rating
  • методы: info(), is_good()

2. Дочерний класс Movie

  • добавляет атрибут genre
  • переопределяет info()
  • создает is_good()
  • фильм хороший, если rating >= 7

3. Дочерний класс Series

  • добавляет атрибуты seasons, episodes
  • переопределяет info() и is_good()
  • сериал хороший, если rating >= 8

4. Интерактивное меню

  • добавление фильма
  • добавление сериала
  • просмотр всей коллекции
  • выход

🛡️ Обработка ошибок

  • Ввод числа: защита от букв, пустого ввода
  • Диапазон: проверка, что число в меню 1–4
  • Пустая строка: название и жанр не могут быть пустыми

📝 Пример работы

1. Добавить фильм
2. Добавить сериал
3. Показать все
4. Выход
Выберите действие (1-4): 1

Введите название: Начало
Введите год выхода: 2010
Введите рейтинг от 1 до 10: 8.8
Введите жанр: фантастика

1. Добавить фильм
2. Добавить сериал
3. Показать все
4. Выход
Выберите действие (1-4): 3

Начало (2010) - фантастика. Рейтинг: 8.8 ✅

🧠 Чему научился

  • Создавать иерархию классов
  • Использовать super() для вызова родительских методов
  • Переопределять методы в дочерних классах
  • Реализовывать полиморфизм (разное поведение для одного интерфейса)
  • Строить интерактивное меню с защитой ввода
  • Проверять пустой список перед выводом

📁 Структура проекта

17_inheritance_media/
├── main.py       # код программы
└── README.md     # документация

🚀 Как запустить

python main.py

📊 Статус

✅ Проект готов