Bạn có thể cung cấp các kịch bản khi chúng ta kế thừa từ một lớp, nó hoạt động trong một thời gian không, nhưng sau đó một cái gì đó khác thay đổi và giới thiệu một lỗi? Tôi đã đưa ra tình huống sau:Khi kế thừa từ một lớp học bạn sẽ thấy đau sau này?
- để triển khai Hình chữ nhật có lỗ, chúng tôi kế thừa từ Hình chữ nhật lớp. Trong hàm tạo, chúng ta kiểm tra xem lỗ có nằm trong hình chữ nhật hay không
- Sau đó, ai đó thêm phương thức mới Thay đổi kích thước thành hình chữ nhật lớp. Họ không kiểm tra nếu lỗ vẫn còn bên trong.
- Sau khi thay đổi kích thước, chúng ta có thể có hình chữ nhật có lỗ với các lỗ bên trong hình chữ nhật, đó là một lỗi.
Các vấn đề khác tôi nên cẩn thận nếu tôi chọn sử dụng kế thừa đối tượng trong C#.
Nó không phải là một cái gì đó phải cẩn thận trong C#, đó là một cái gì đó phải cẩn thận trong bất kỳ ngôn ngữ hướng đối tượng. Các lớp cơ sở nên * không bao giờ * phải lo lắng về thế hệ con cháu của chúng. – Robaticus
@Robaticus: Tôi đã nói C# vì trong C++ chúng ta có thể kế thừa từ nhiều lớp, và dễ dàng hơn để gặp rắc rối. Trong C# chúng ta chỉ có thể kế thừa từ một lớp. –
Tôi vẫn đứng trước những gì tôi nói. Đây là điều cần lưu ý bất kể ngôn ngữ được sử dụng. Nó không phải là duy nhất cho C#. – Robaticus