多态性在 时表示的是指同名的不同方法在程序中共存。即为同一个方法定义几个版本,运行时根据不同情况执行不同的版本。调用者只需使用同一个方法名,系统会根据不同情况,调用相应的不同方法,从而使 实现不同的功能。多态性又被称为“一个名字,多个方法”。
多态性的实现
覆盖实现多态性
通过子类对继承父类方法的重定义来实现。使用时注意:在子类重定义父类方法时,要求与父类中原型( 参数个数、类型、顺序)完全相同。由于 功能上的复杂,这些方法是存在于一个类层次结构的不同子类中的,在调用方法时只需要指明调用哪个类(或对象)的方法,就很容易把它们区分开来,其调用形式为:
对象名.方法名
类名.方法名
重载实现多态性
通过定义类中的多个同名的不同方法来实现。编译时是 根据参数(个数、类型、顺序)的不同来区分不同方法的。由于重载发生在同一个类中,不能再用类名来区分不同的方法了,所以在重载中采用的区分方法是使用不同的形式参数表,包括形式参数的个数不同、类型不同或顺序的不同。
多态的优点
多态大大提高了程序的抽象程度和简洁性,更重要的是,在 中最大限度地降低了类和程序模块之间的藕合,提高了类模块的封闭性,使得它们不需了解对方的具体细节,就可以很好地工作。 |