Hy vọng không quá hàn lâm ...
Giả sử tôi cần số thực và số phức trong thư viện SW của mình.
Dựa trên mối quan hệ is-a (hoặc ở đây ), số thực là một số phức, trong đó b trong phần ảo của số phức chỉ đơn giản là 0.
Mặt khác, việc triển khai của tôi sẽ là, đứa trẻ đó mở rộng cha mẹ, vì vậy trong cha mẹ RealNumber tôi có phần thực và đứa trẻ ComplexNumber sẽ thêm nghệ thuật tưởng tượng.
Ngoài ra có một ý kiến, rằng thừa kế là xấu xa .
Tôi nhớ lại như ngày hôm qua, khi tôi học OOP ở trường đại học, giáo sư của tôi nói, đây không phải là một ví dụ tốt về thừa kế vì giá trị tuyệt đối của hai thứ đó được tính khác nhau (nhưng vì chúng ta có quá tải phương pháp / đa hình, phải không?) .. .
Kinh nghiệm của tôi là, chúng ta thường sử dụng tính kế thừa để giải quyết DRY, do đó chúng ta thường có các lớp trừu tượng nhân tạo trong hệ thống phân cấp (chúng ta thường gặp vấn đề khi tìm tên vì chúng không đại diện cho các đối tượng từ thế giới thực).