LUCa Cardelli和Peter Wegner("On Understanding Types, Data Abstraction, and Polymorphism"一文的作者, 文章參考資源鏈接)把多態(tài)分為兩大類----特定的和通用的----四小類:強(qiáng)制的,重載的,參數(shù)的和包含的。他們的結(jié)構(gòu)如下:
乍一看,上面抽象類似乎是java.util.List的功能。然而,Java實(shí)際上并不支持真正的安全類型風(fēng)格的參數(shù)多態(tài),這也是java.util.List和java.util的其他集合類是用原始的java.lang.Object寫的原因(參考我的文章"A PRimordial Interface?" 以獲得更多細(xì)節(jié))。Java的單根繼續(xù)方式解決了部分問(wèn)題,但沒有發(fā)揮出參數(shù)多態(tài)的全部功能。Eric Allen有一篇出色的文章“Behold the Power of Parametric Polymorphism”,描述了Java通用類型的需求,并建議給Sun的Java規(guī)格需求#000014號(hào)文檔"Add Generic Types to the Java Programming Language."(參考資源鏈接)