3个回答
2014-03-09
展开全部
转自百科-------------------多态(Polymorphism)按字面的意思就是“多种形状”。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自行模野“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现的。
多态性是允许将父对象设置成为和一个或多个它的子对象相等的技术,码改比如Parent:=Child; 多态性使得能够利用同一类(基类)类型的指针来引用不档喊同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作.
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();
return 0;
}
这将显示:
This is B.
如果把virtual去掉,将显示:
This is A.
多态性是允许将父对象设置成为和一个或多个它的子对象相等的技术,码改比如Parent:=Child; 多态性使得能够利用同一类(基类)类型的指针来引用不档喊同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作.
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();
return 0;
}
这将显示:
This is B.
如果把virtual去掉,将显示:
This is A.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-09
展开全部
一般说来,继承、多态、虚函数厅困这三者大仿是常在一起的,父类是一个高层抽象,继承类是具体的实现,当使用指针调用时,只有在运行时才会知道具体运行哪个函数,这就是扮仿念多态,我想,用例子你更能看懂:#include <iostream>using namespace std;class Person{ public: virtual void showName() { cout << "显示姓名" << endl; }};class Student : public Person{ public: void showName() { cout << "显示学生姓名" << endl; }};
class Teacher : public Person{public: void showName() { cout << "显示教师姓名" << endl; }};
int main(){ //ptr1和ptr2都是Person父类指针 Person* ptr1 = new Teacher; //显示教师 ptr1->showName(); Person* ptr2 = new Student; //显示学生 ptr2->showName(); delete ptr1; delete ptr2; return 0;}
class Teacher : public Person{public: void showName() { cout << "显示教师姓名" << endl; }};
int main(){ //ptr1和ptr2都是Person父类指针 Person* ptr1 = new Teacher; //显示教师 ptr1->showName(); Person* ptr2 = new Student; //显示学生 ptr2->showName(); delete ptr1; delete ptr2; return 0;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-09
展开全部
继承同一基类的不同子类,将会有不同的操作,这个实体的燃核册皮宏子类表现的态,就是多态。人(基类):60后,70后,80后,90后,都是人,不过生活方式,年龄,活跃程度等等都不氏搭同,这就是态性不同。大概可以这么理解,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询