Объекты подклассов должны быть взаимозаменяемы с объектами базового класса.
Подкласс не должен ломать поведение родителя.
Если где-то ожидается 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("Пингвин не летает!"); } }
Объекты подклассов должны быть взаимозаменяемы с объектами базового класса.
Подкласс не должен ломать поведение родителя.
Если где-то ожидается 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("Пингвин не летает!"); } }
// Пример кода
function hello(name) {
console.log(`Hi, ${name}!`);
}
hello("Sergey");