本文有待考虑,有的书上说,Java是不支持潜在类型机制的,但泛型本身个人就理解为是支持潜在类型机制的。Java的泛型,是不能从继承的角度进行考虑泛型本身的。(这是我读Java编程思想,与作者的观点不尽相同的。Java编程思想是通过继承体系去讲解泛型的,泛型的前半部分我读的云里雾里的,直到潜在类型机制的概念的出现,我感觉开头作者讲解的泛型的出发点似乎有点自相矛盾。Java编程思想认为,泛型在使用的时候,即便使用父类也不会做类型校验,是Java实现上的问题。而我反而觉着这正是Java的泛型的设计思想上的特殊之处,非继承体系,虽然这可能与Java是继承这个特性相违背的)
欢迎讨论。本人菜鸟,请勿拍砖,拍砖者好走不送
鸭子类型机制:如果它看起来像鸭子,叫起来像鸭子,就认为它是鸭子。(不管它到底是不是鸭子,只要它有鸭子的特征,就把它看做鸭子对待)。
潜在类型机制:不显示地判断,校验类型,如果它有我认为那个类型所应该有的特征,那么我就认为它的类型就是那个潜在该拥有这个特征的类型。
结构化类型机制:非继承类型机制。通过判断是否有对应的方法,而非继承某个接口或父类去推测类型。
潜在类型机制,可以使代码脱离继承体系,进行类型的判断。从而使代码脱离父类或接口而被应用到其他环境中,进而写出更加泛化的代码。比如 一个对象有speak() ,sit() 就认为是鸭子,所以只要把一个对象