多态作为OO几大特性之一,在我们设计模式与实际开发中经常被用到, 在设计模式学习之前,有必要对多态的机制研究总结下。
一、什么是多态(Polymorphism):
这个概念各人各说法,我的理解是:
多态是一个特征,及对象(接口、基类、子类)的多种表现行为。在java中主要体现在以下几点:、
1、重载(overload)与重写(override):
重载:参数多态,即一个类中,相同方法名不同参数(类型、个数)。
重写:子类覆写父类的方法。
2、向上转型(upcast):如:将子类对象赋值给父类对象,由父类对象调用子类的方法。
3、动态绑定(binding) :在程序运行时,根据对象类型调用相应对象的方法。
The fact that an object variable can refer to multiple actual types is called polymorphism. Automatically selecting the appropriate method at run time is called dynamic binding.【摘自Core Java2】
一个对象变量实际上