Встречается на собеседованиях • сегодня

Какая возникнет проблема при неправильном использовании наследования

Неправильное использование наследования может привести к нарушению принципа подстановки Барбары Лисков (LSP), когда подкласс не может заменить родительский класс без изменения поведения программы. Это создает хрупкий и трудно поддерживаемый код.

Пример:

python
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

class Square(Rectangle):
    def __init__(self, size):
        super().__init__(size, size)

    def set_width(self, width):
        self.width = self.height = width  # Нарушает LSP, так как изменяет и высоту

Если клиентский код ожидает, что изменение ширины Rectangle не повлияет на высоту, использование Square приведет к ошибкам. Вместо наследования здесь лучше использовать композицию.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы