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

«Что такое класс в объектно-ориентированном программировании?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Класс — это фундаментальная концепция ООП, представляющая собой шаблон или чертёж для создания объектов. Он определяет:

  • Состояние (данные) в виде атрибутов или полей.
  • Поведение (функции) в виде методов.

Классы реализуют три основных принципа ООП:

  1. Инкапсуляция: Объединение данных и методов в одной единице и сокрытие внутренней реализации (например, через модификаторы доступа private).
  2. Наследование: Возможность создания нового класса (дочернего) на основе существующего (родительского), перенимая его свойства и поведение.
  3. Полиморфизм: Способность объектов с одинаковым интерфейсом (например, унаследованным методом) иметь разную реализацию.

Пример на Python:

# Базовый класс
class Animal:
    def __init__(self, name):
        self.name = name  # атрибут (поле) класса

    def speak(self):  # метод класса
        raise NotImplementedError("Дочерний класс должен реализовать этот метод")

# Дочерний класс (наследование)
class Dog(Animal):
    def speak(self):  # переопределение метода (полиморфизм)
        return f"{self.name} говорит: Гав!"

# Создание объекта (экземпляра класса)
my_dog = Dog("Рекс")
print(my_dog.speak())  # Вывод: Рекс говорит: Гав!