Từ Programming Languages: Principles and Paradigms, by Maurizio Gabbrielli, Simone MartiniTính đa hình trong ngôn ngữ lập trình có ngụ ý mối quan hệ tập hợp con giữa các loại có liên quan không?
De fi định nghĩa 8.5 Một hệ thống kiểu trong đó cùng một đối tượng có thể có nhiều hơn một loại được gọi là đa hình.
Tương tự, chúng tôi sẽ nói rằng đối tượng là đa hình khi hệ thống loại gán nhiều loại cho nó.
Khi đối tượng đa hình, giả sử rằng nó được gán loại T1 và loại T2. Có luôn luôn là một trong hai loại T1 và T2 là tập hợp con của loại kia? (Lưu ý rằng nếu bạn cho rằng đó không phải là sự thật, bạn có thể từ chối nó bằng cách đưa ra một ví dụ.)
Nếu đúng, thì chúng ta có thể nói rằng đa hình xảy ra ở mức độ nhiều hơn mức các đối tượng, theo nghĩa, T1 là một tập con của T2, bất kỳ đối tượng T1 nào cũng có thể được gán T2?
Nếu không đúng, thì chúng ta có thể nói rằng đa hình chỉ xảy ra ở cấp độ đối tượng, thay vì mức độ loại, theo nghĩa, một đối tượng T1 khác có thể không được gán T2 và đối tượng khác T2 có thể không được gán T1?
Cảm ơn.
'lớp Foo triển khai Interface1, Interface2 {}'. –
Vì đây là ngôn ngữ bất khả tri (ít nhất là tôi nghĩ nó nên được) nó có thể là tốt hơn để đăng này trên Programmer.SE. – NathanOliver
Tôi nghĩ đó là sự thật, nhưng tôi không thể hiểu tại sao tôi lại làm vậy. Nó chỉ có ý nghĩa với tôi. (Tất nhiên, có thể lạm dụng hệ thống kiểu, nhưng thừa kế có vẻ được thiết kế để hiển thị các mối quan hệ kiểu con) –