เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สี่เหลี่ยมจัตุรัสและสี่เหลี่ยมผืนผ้า

ตัวอย่างคลาสสิกของปัญหาที่ละเมิด Liskov Substitution Principle คือ ปัญหา Circle-Ellipse ซึ่งบางครั้งเรียกว่าปัญหา Square-Rectangle

ดูเผินๆ แล้ว น่าจะกำหนดคลาส Rectangle ที่มี attribute h และ w (สำหรับความสูงและความกว้าง) แล้วสร้างคลาส Square ที่รับสืบทอดจาก Rectangle ได้อย่างสมเหตุสมผล เพราะสี่เหลี่ยมจัตุรัสก็ "เป็น" สี่เหลี่ยมผืนผ้า!

แต่น่าเสียดายที่ความเข้าใจนี้ใช้ไม่ได้ในการออกแบบเชิงวัตถุ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนโปรแกรมเชิงวัตถุใน Python

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define a Rectangle class
____

# Define a Square class
____
แก้ไขและรันโค้ด