多态

什么是多态

多态,简单来说,多态是具有表现多种形态的能力的特征;同一个实现接口,使用不同的实例而执行不同操作。它和封装、继承一样也是面向对象的一大特点。
多态可以分为静态多态和动态多态,静态多态就是我们常说的方法的重载,而动态多态必须要具备三个条件。
动态多态发生的三个必要条件:
1.要有继承或实现;
2.要有重写;
3.发生上溯造型;

上溯造型

上溯造型是指父类引用指向子类对象(可以理解为花木兰替父从军)。
发生上溯造型的前提是,子类必须具有继承或实现关系。
发生上溯造型的对象只向外界公开其从父类继承过来的属性和方法,隐藏了自己扩展的属性和方法。
需要注意的是,当发生上溯造型时:1.子类没有重写父类方法时,调用执行的是父类的方法。
2.子类重写了父类方法时,调用执行的是子类重写后的方法。
3.子类与父类拥有同名变量时,无论子类怎样改值,变量值永远跟父类的变量值保持一致。

下溯造型

下溯造型可以通俗的理解为花木兰替父从军归来做回花木兰,所以发生下溯造型的前提就是,必须先发生上溯造型。也就是说,子类对象可以向上直接转型成父类对象,但是父类对象不能直接向下转型成子类对象。
基本格式: 子类型 变量名 = (子类型) 变量名;

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容