面向对象—多态
1.概念
- 多态是面向对象程序设计(OOP)的一个重要特征,多态的字面意思就是多种状态。在面向对象语言中,同一操作作用于不同的对象,可以有不同的实现方式,产生不同的执行结果。简单的说来就是一句话:使用父类类型的引用指向子类的对象。
- 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用变量调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
2.Java中多态的实现
- (1)必要条件:
- 继承:在多态中必须存在有继承关系的子类和父类。
- 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
- 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。
- (2)实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
- (3)多态的实现机制遵循原则:当父类对象引用变量指向子类对象时,被引用对象的类型(也就是