Terinspirasi oleh jawaban ini :
Prinsip Pergantian Liskov mensyaratkan itu
- Prasyarat tidak dapat diperkuat dalam subtipe.
- Postconditions tidak dapat dilemahkan dalam subtipe.
- Invarian tipe supertipe harus dipertahankan dalam subtipe.
- Batasan sejarah ("aturan sejarah"). Objek dianggap dapat dimodifikasi hanya melalui metode mereka (enkapsulasi). Karena subtipe dapat memperkenalkan metode yang tidak ada dalam supertipe, pengenalan metode ini memungkinkan perubahan status pada subtipe yang tidak diizinkan dalam supertipe. Batasan sejarah melarang ini.
Saya berharap jika seseorang akan memposting hirarki kelas yang melanggar 4 poin ini dan bagaimana menyelesaikannya.
Saya mencari penjelasan terperinci untuk tujuan pendidikan tentang bagaimana mengidentifikasi masing-masing dari 4 poin dalam hierarki dan cara terbaik untuk memperbaikinya.
Catatan:
Saya berharap untuk mengirim contoh kode untuk dikerjakan orang, tetapi pertanyaannya adalah tentang bagaimana mengidentifikasi hierarki yang salah :)