Vì vậy, tôi muốn kế thừa từ một sealed class
trong CSharp và bị đốt cháy. Không có cách nào để mở khóa nó trừ khi bạn có quyền truy cập vào nguồn.
Sau đó, nó khiến tôi suy nghĩ "tại sao sealed
thậm chí tồn tại?". 4 tháng trước. Tôi không thể tìm ra nó, mặc dù đọc nhiều điều về nó, chẳng hạn như:
- Mong muốn của Jon Skeet " các lớp được niêm phong theo mặc định trong .NET. "
- Thích thành phần hơn thừa kế?
- "Bạn không nên niêm phong tất cả các lớp (...)"
- Làm thế nào để bạn chế nhạo một lớp kín?
Tôi đã cố gắng tiêu hóa tất cả những thứ đó kể từ đó, nhưng nó chỉ là quá nhiều đối với tôi. Cuối cùng, ngày hôm qua tôi đã thử lại. Tôi đã quét qua tất cả chúng một lần nữa, cộng thêm vài lần nữa:
- Tại sao một lớp nên là bất cứ thứ gì khác ngoài "trừu tượng" hoặc "cuối cùng / niêm phong"?
- Trong hơn 15 năm lập trình, lần đầu tiên tôi nghe nói về RẮN , từ một câu trả lời từ một câu hỏi đã được liên kết và rõ ràng tôi đã không đọc nó cả 4 tháng trước
Cuối cùng, sau nhiều suy ngẫm, tôi quyết định chỉnh sửa mạnh câu hỏi ban đầu dựa trên tiêu đề mới.
Câu hỏi cũ quá rộng và chủ quan. Về cơ bản nó đã hỏi:
- Trong tiêu đề cũ: Một lý do chính đáng để sử dụng niêm phong
- Trong cơ thể: Làm thế nào để sửa đổi một lớp kín? Quên về thừa kế? Sử dụng thành phần?
Nhưng bây giờ, sự hiểu biết (mà tôi đã không làm ngày hôm qua) rằng tất cả đều sealed
ngăn cản sự kế thừa , và chúng ta thực sự có thể và nên sử dụng thành phần trên sự kế thừa , tôi nhận ra những gì tôi cần là những ví dụ thực tế .
Tôi đoán câu hỏi của tôi ở đây là (và trên thực tế luôn luôn như vậy) chính xác những gì Mr.Mindor gợi ý cho tôi trong một cuộc trò chuyện : Làm thế nào để thiết kế cho thừa kế có thể gây thêm chi phí?