日期:2014-05-19  浏览次数:20759 次

请教什么是多态性
oo中经常看到
但总看不懂

------解决方案--------------------
就是所谓的一个接口多种形态。
比如: 一个人说你好 可以用汉语 ,也可以用英语,法语等 。
这个就成了简单的多态。
和实际编程相关的例子。比如:
我有函数A();
然后用N种方法对他进行了重载,这就形成了多态。
------解决方案--------------------
http://www0.ccidnet.com/tech/guide/2001/06/08/58_2308.html
------解决方案--------------------
多态性是指用一个名字定义不同的函数,这函数执行不同但又类似的操作,从而实现“一个接口,多种方法”。
比如说,有一个发送的send函数,可以有多种实现方法,send(int port),send(IPAddress ip,int port),多态性就通过函数重载实现了多态性,这两个函数名字相同,执行的功能也类似,只不过一个定义了一个目标端口,一个定义了目标IP地址和端口。
------解决方案--------------------
多态涉及的技术是动态绑定(后期绑定),主要是类型识别问题,和重载毫无关系,详细的东西不少,随便一本面向对象的书都会介绍,我们说的不可能比书上还清楚的。
------解决方案--------------------
多态,B类继承了A类~~那么可以这样
A a=B();

一个方法的参数,这个方法可能只使用了A类的某些功能,所以定义成这样,
可以接受A类以及A类的子类作为参数
void AcceptClassA(A a){
//我这里只使用了a实例中作为A类的某些功能
//因为A类的子类具备了A类的功能,所以我也接受它
}

那么调用的时候可以这样AcceptClassA(new A());也可以这样AcceptClassA(new B())


多态大概就是这么用...