什么是向上造型举例说明
时间: 2024-05-13 15:12:48 浏览: 56
浅谈Java中向上造型向下造型和接口回调中的问题
向上造型(Upcasting)指的是将一个子类对象转换成父类对象的过程。例如,我们有一个Animal类和一个Cat类,Cat是Animal的子类,当我们使用Cat类创建一个对象时,这个对象既可以被视为Cat类的对象,也可以被视为Animal类的对象。如果我们将这个Cat对象转换成Animal对象,这个过程就是向上造型。
例如,我们可以这样定义Animal和Cat类:
```
class Animal {
public:
virtual void speak() {
cout << "I am an animal." << endl;
}
};
class Cat : public Animal {
public:
void speak() {
cout << "I am a cat." << endl;
}
void climb() {
cout << "I can climb trees." << endl;
}
};
```
然后我们创建一个Cat对象,并将其转换成Animal对象:
```
Cat cat;
Animal& animal = cat;
```
现在,我们可以通过animal这个Animal类型的引用来访问Cat类中重写的speak()函数,也可以使用它来访问Animal类中原有的speak()函数。但是,我们不能通过animal来访问Cat类中新增的climb()函数,因为animal只知道自己是Animal类型的对象,而不知道自己实际上是一个Cat类型的对象。
阅读全文