面向对象程序设计为什么要引入多态的特性?
多态就是多重状态。
比如有一个父类superClass,它有2个子类subClass1,subClass2。
superClass有一个方法func(),两个子类都重写了这个方法。
那么我们可以定义一个superClass的引用obj,让它指向一个子类的对象,比如superClass obj = new subClass1();那么我们调用obj.func()方法时候,会进行动态绑定,也就是obj它的实际类型的func()方法,即subClass1的func()方法。
同样你写superClass obj = new subClass2();obj.func()其实调用的是subClass2的func()方法。
这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态。
多态对程序的扩展具有非常大的作用,比如你要再有一个subClass3,你需要改动的东西会少很多,要是使用了配置文件那就可以不动源代码了。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有