标签:检查 二层 nal rtti ati 不同 基类 stat 根据
第8章:多态
多态,同种类型的不同的存在状态。在此之前我一直有个困惑,多个类实现同一个接口,如何按不同场景应用不同的实现类。现在想来要想实现这种想法是不现实的,正确的思路应该是一个接口被多个接口继承(为了不同场景),然后在分别实现,调用接口的时候,就调用二层的接口,实现了唯一实现类与一个接口绑定。多态主要用在继承,为了扩展导出类,主要方向在于扩展类型,覆盖掉基类的方法,修改成专门针对导出类型的方法。
对于参数的多态性,具体的实现思路应该是运行时将某一类的对象传进去,这就是后期绑定,然后根据是否继承自基类(或者object)判断同种类型。值得注意的是static和final是前期绑定,就是编译时期就知道相应的地址,这是因为这两种修饰的对象的生命周期是同类一样长,他们具有唯一性,与动态绑定就没有什么关系了。涉及到这种引用的调整,肯定都是非常谨慎的,所以不管是上转型还是下转型都要进行检查(RTTI)。具体执行的顺序就要jvm阶段具体分析。
继承与接口类似,都是最好使用is-a的形式设计,这样可以最大的限度减低问题的发生,如果使用is-like-a就要涉及到上转型,新添加的方法没什么用,只能修改方法里面的内容,只能先上转型才能下转型。
标签:检查 二层 nal rtti ati 不同 基类 stat 根据
原文地址:https://www.cnblogs.com/aiwin/p/12369414.html