美文网首页
*面向对象的特征——多态的意义和操作过程

*面向对象的特征——多态的意义和操作过程

作者: 恶人未满 | 来源:发表于2017-07-27 21:08 被阅读0次

简单的说,其实多态就是“相同的表达式,不同的操作”,也可以说成“相同的命令,不同的操作”。程序在运行的过程中,根据传递的参数的不同,执行不同的函数或者操作不同的代码,这种在运行过程中才确定调用的方式成为运行时多态

多态的意义在于,它实现了接口重用(同一的表达式),接口重用带来的好处是程序更易于扩展,代码重用更加方便,更具有灵活性,也就能真实地反映现实世界。

下面是一个简单的Python程序,更直观的体现运行时多态

>>>class Man:

>>>   def intro(self):

>>>       print("我的姓名是XXXXXXXXXXXXXXXXXXXXXX")

>>>class Women:

>>>   def intro(self):

>>>      print("我的姓名是oooooooooooooooooooooo")

>>>def introduction(person):

>>>     person.intro()

>>>m = Man()

>>>w = Women()

>>>introduction(m)

>>>introduction(w)

这里运行结果为:

我的姓名是XXXXXXXXXXXXXXXXXXXXXX

我的姓名是oooooooooooooooooooooo

这里定义了两个类man类和woman类但是方法相同,都是intro(self):但是输出结果却不同,这说明运行时这个方法有两种形态,这就叫运行时多态

其实多态就是多重状态。比如有一个父类superClass,它有2个子类subClass1,subClass2。superClass有一个方法func(),两个子类都重写了这个方法。那么我们可以定义一个superClass的引用obj,让它指向一个子类的对象,那么我们调用obj.func()方法时候,会进行动态绑定,也就是obj它的实际类型的func()方法,即subClass1的func()方法。这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态。多态对程序的扩展具有非常大的作用,比如你要再有一个subClass3,你需要改动的东西会少很多,要是使用了配置文件那就可以不动源代码了。

相关文章

网友评论

      本文标题:*面向对象的特征——多态的意义和操作过程

      本文链接:https://www.haomeiwen.com/subject/fcltlxtx.html