多态
2017-03-29 17:23:32 0 举报
AI智能生成
多态是面向对象编程的一个重要特性,它允许不同类的对象对同一消息做出响应。这意味着,即使两个类具有不同的方法和属性,它们也可以使用相同的方法名来执行相同的操作。这种灵活性使得程序更加易于扩展和维护,因为开发人员可以编写通用的代码来处理不同类型的对象。 在Java中,多态是通过继承和方法重写实现的。子类继承了父类的方法,并可以根据需要对其进行修改或扩展。当调用一个方法时,Java虚拟机会根据对象的实际类型来决定调用哪个方法。这就是所谓的运行时绑定。
作者其他创作
大纲/内容
方法调用绑定
前期绑定
后期绑定
在运行时根据对象的类型进行绑定,也叫动态绑定
方法区父类和子类的方法指针按顺序排列,子类的重写方法覆盖父类的方法
缺陷:覆盖私有方法
私有方法默认是final不能被覆盖
在子类中覆盖父类私有方法实际是新方法
通过父类引用,子类对象调用的是私有方法,不是子类新方法
缺陷:域与静态方法
域访问不是多态的,都是由编译器解析
静态方法不具备多态性
构造器和多态
复杂对象调用构造器顺序
1.在其他任何事物发生之前,将分配给对象的存储空间初始化为二进制0
2.调用基类构造器(此时,可能会调用被覆盖后的draw()方法)
3.按声明顺序调用成员的初始化方法
4.调用导出类构造器的主体
继承和清理
构造器内部的多态可能导致隐藏错误
在基类构造器内部调用了子类的方法,导致变量未初始化
协变返回类型
在导出类的被覆盖方法可以返回某种导出类型
渠道新增
用继承进行设计
向下转型与运行时类型识别
运行时会进行检查,如果类型不符,抛ClassCastException
0 条评论
下一页