Kegagalan OOP tertentu ditunjukkan dengan kelas Square yang mewarisi dari Rectangle, di mana secara logis Square adalah spesialisasi dari Rectangle dan karenanya harus diwarisi darinya, tetapi semuanya berantakan ketika Anda mencoba mengubah panjang atau lebar Square.
Apakah ada istilah khusus untuk menggambarkan apa yang salah dengan kasus itu?
Jawaban:
Wikipedia hanya menyebutnya sebagai masalah Circle-ellipse
sumber
Saya akan menganggapnya sebagai pelanggaran terhadap Prinsip Pergantian Liskov -
Square
subclass tersebut secara spesifik melanggar invarian bahwa panjang dan lebar adalah independen.sumber
Pada tingkat yang lebih mendasar daripada Prinsip Substitusi Liskov, ini adalah kesalahan kategori atau kesalahan kategori
Dalam konteks perilaku pemodelan, bujur sangkar bukanlah tipe persegi panjang.
Ketika Anda menyadari ini, masalahnya menguap sejak asumsi awal (persegi adalah jenis persegi panjang) dihapus dari permainan.
Masalah dengan jawaban ini adalah bahwa sejak sekolah itu dibor ke siapa pun yang melakukan geometri bahwa persegi adalah jenis persegi panjang. Tetapi sangat penting untuk memahami bahwa ini hanya benar dalam konteks yang sangat spesifik (klasifikasi bentuk-bentuk geometris berdasarkan sifat-sifat sudut internal mereka). Dalam hal perilaku persegi bukan persegi panjang. Untuk melihat satu set klasifikasi dalam konteks yang salah adalah kesalahan kategori.
sumber