Questions tagged «subtypes»

4
在多态性的背景下,如何处理为子类型添加的方法?
当使用多态性的概念时,您将创建一个类层次结构,并使用父代引用来调用接口函数,而无需知道对象具有哪种特定类型。这很棒。例: 您有动物的集合,并且可以调用所有动物的功能,eat而不必关心它是吃狗还是猫。但是在同一个类层次结构中,您的动物除了从类继承和实现Animal(例如makeEggs,getBackFromTheFreezedState等等)外,还具有其他动物。因此,在某些情况下,您可能需要了解调用其他行为的特定类型。 例如,如果是早晨,如果它只是一只动物,那么您可以致电eat;否则,如果是人类,那么请首先致电washHands,getDressed然后再致电eat。如何处理这种情况?多态性死亡。您需要找出对象的类型,这听起来像是代码气味。是否有处理这种情况的通用方法?

2
为什么行为亚型还不确定?
Liskov在该领域的工作集中于行为子类型,除了本文讨论的类型系统安全性之外,Liskov还要求子类型保留某些契约中由超类型保证的所有不变量。[3] 子类型的定义通常无法确定,因此类型检查器无法验证。 来自:http : //www.wikiwand.com/cn/Subtyping#/Function_types
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.