Ответ
Нарушение принципа подстановки Лисков (LSP) можно наблюдать в ListView и RecyclerView.
Пример:
val listView: ListView = findViewById(R.id.listView)
listView.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, items)
// Нарушение LSP: RecyclerView.Adapter несовместим с ListView.Adapter
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
recyclerView.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, items) // Ошибка компиляции
Хотя оба адаптера служат одной цели, они не взаимозаменяемы из-за разных интерфейсов. Это нарушает LSP, так как подкласс (RecyclerView.Adapter) не может заменить базовый (ListView.Adapter).