首页 > 代码库 > 多态

多态

  继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制,从而可以再不影响使用者的前提下,改变类的内部结构,同时保护了数据。继承是为了重用父类代码,同时为多态做准备。多态就是相同的行为,不同的实现。

  在Java中,多态有两种理解方式:静态多态和动态多态。静态多态的实现方式是方法重载,其调用规则是根据对象在定义时的类型相应地调用对应类中的重载方法。动态多态的实现方式是重写父类中的同名成员方法,其调用规则是根据对象在实例化时而非定义时的类型,相应地调用类中的同名成员方法。动态多态主要通过动态绑定和从写的机制来实现。

  多态的技术基础:

  向上转型技术:一个父类的引用变量可以指向不同的子类对象或者说一个子对象可以被当作一个父类类型。

  instanceof关键字:用于判断运行时对象的真正类型。

  动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应子类方法。

  多态总结:父类的引用变量无法调用子类的方法和属性,只能调用本身的方法和属性;子类的引用变量可以访问父类的方法和属性;异构集合,一个父类数组可以装父类和子类对象;Object数组可以装任何数据类型。