多态(未完)

原创 2013年12月04日 21:47:13

一.什么是多态

比如有一个父类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,你需要改动的东西会少很多,要是使用了配置文件那就可以不动源代码了。
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模板。

多态就是允许方法重名 参数或返回值可以是父类型传入或返回。

二.多态的例子

在C++中:

class A
{
public:
A() {}
virtual void foo()
{
cout << "This is A." << endl;
}
};
class B : public A
{
public:
B() {}
void foo()
{
cout << "This is B." << endl;
}
};
int main(int argc, char* argv[])
{
A *a = new B();
a->foo();
if(a != NULL)
delete a;
return 0;
}
这将显示:
This is B.
如果把virtual去掉,将显示:
This is A.
前面的多态通过使用虚函数virtual void foo()来实现。
在java中:
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现(以java语言为例):
public interface Parent // 父类接口
{
public void simpleCall();
}
public class Child_A implements Parent
{
public void simpleCall()
{
//具体的实现细节;
}
}
public class Child_B implements Parent
{
public void simpleCall()
{
//具体的实现细节;
}
}
//当然还可以有其他的实现
然后,我们就可以看到多态所展示的特性了:
Parent pa = new Child_A();
pa.simpleCall()则显然是调用Child_A的方法;
Parent pa = new Child_B();
pa.simpleCall()则是在调用Child_B的方法。
所以,我们对于抽象的父类或者接口给出了我们的具体实现后,pa 可以完全不用管实现的细节,只访问我们定义的方法,就可以了。



相关文章推荐

VB6 IP控件 转VB.NET(未完)

  • 2010年07月13日 23:31
  • 65KB
  • 下载

R语言做时间序列(未完)

我学的时间序列课程,实验课都是在sas做的,一直想用R把大概的思路捋顺一下,所以这篇东西并没有给出很多的程序结果, 更多地设计做时间序列的思路...

二人军棋(未完)

  • 2007年01月22日 22:27
  • 525KB
  • 下载

探索 ES6(未完)

  • 2017年04月13日 20:56
  • 407KB
  • 下载

imdb官网xpath大全[官网]未完

Series Directed by  .//*[@id='fullcredits_content']/h4[1]/text() 第一个director  .//*[@id='fullcredits_...
  • Mamong
  • Mamong
  • 2014年01月10日 23:16
  • 761

鲁东大学Online judge(未完)

  • 2016年10月03日 19:15
  • 791KB
  • 下载

ppt制作读书笔记(未完)

1、言语要活泼生动,拉近与听众的距离。 2、言语要有鼓动性。 3、ppt背景要单纯。 4、配色要合理 5、突出显示要强调的部分 6、结构要合理,例如采用总分总,或分阶段总结的结构,在一个部分...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多态(未完)
举报原因:
原因补充:

(最多只允许输入30个字)