Hình vuông và hình chữ nhật
Ví dụ kinh điển về vấn đề vi phạm Nguyên lý thay thế Liskov là vấn đề Hình tròn–Hình ellipse, đôi khi còn gọi là vấn đề Hình vuông–Hình chữ nhật.
Nhìn bề ngoài, có vẻ bạn nên có thể định nghĩa một lớp Rectangle với các thuộc tính h và w (chiều cao và chiều rộng), rồi định nghĩa một lớp Square kế thừa từ Rectangle. Rốt cuộc thì hình vuông “là một” hình chữ nhật mà!
Tiếc là trực giác này không đúng trong thiết kế hướng đối tượng.
Bài tập này là một phần của khóa học
Lập trình hướng đối tượng trong Python
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Define a Rectangle class
____
# Define a Square class
____