/
Vini1979
/
Java_OOP
Обзор
Документация
Войти
/
Vini1979
/
Java_OOP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Lecture_06/Ex003_2LSP.java
54 строки
1 KB
Evgeny
Seminar_06
15 апр 2023, 00:24
15 апр 2023, 00:24
eece761
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.Arrays; import java.util.List; // Liskov substitution principle // Принцип подстановки Лисков // Наследник не должен "ломать" поведение // Наследник не должен делать меньше чем родитель public class Ex003_2LSP { public static void main(String[] args) { List<AbstractAnimal> list1 = new ArrayList<>(Arrays.asList(new Dog(), new Python())); for (var animal : list1) { System.out.println(animal.getType()); } List<Legs> list2 = new ArrayList<>(Arrays.asList(new Dog()/* , new Python() */)); for (var animal : list2) { System.out.println(animal.getLegsCount()); } } } abstract class AbstractAnimal { public String getType() { return "Зверушка"; } } interface Legs { int getLegsCount(); } class Dog extends AbstractAnimal implements Legs { @Override public String getType() { return "собачка"; } @Override public int getLegsCount() { return 4; } } class Python extends AbstractAnimal { @Override public String getType() { return "питончик"; } }