3. L — Liskov Substitution Principle (Принцип подстановки Барбары Лисков)

3. L — Liskov Substitution Principle (Принцип подстановки Барбары Лисков)

Объекты подклассов должны быть взаимозаменяемы с объектами базового класса.

Подкласс не должен ломать поведение родителя.
Если где-то ожидается Animal, то можно безопасно передать Dog или Cat,
не изменяя результат работы программы.

Пример:

class Bird {
    void fly() { System.out.println("Летит"); }
}

class Duck extends Bird {
    @Override
    void fly() { System.out.println("Утка летит"); }
}

//  Нарушение — пингвин не летает
class Penguin extends Bird {
    @Override
    void fly() { throw new UnsupportedOperationException("Пингвин не летает!"); }
}
Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:

3. L — Liskov Substitution Principle (Принцип подстановки Барбары Лисков)

Объекты подклассов должны быть взаимозаменяемы с объектами базового класса.

Подкласс не должен ломать поведение родителя.
Если где-то ожидается Animal, то можно безопасно передать Dog или Cat,
не изменяя результат работы программы.

Пример:

class Bird {
    void fly() { System.out.println("Летит"); }
}

class Duck extends Bird {
    @Override
    void fly() { System.out.println("Утка летит"); }
}

//  Нарушение — пингвин не летает
class Penguin extends Bird {
    @Override
    void fly() { throw new UnsupportedOperationException("Пингвин не летает!"); }
}
https://webprogr.ru/~qgj06
Короткая ссылка на новость:https://webprogr.ru/~qgj06


// Пример кода
function hello(name) {
  console.log(`Hi, ${name}!`);
}
hello("Sergey");

Последние новости

Рейтинг@Mail.ru