cocos里怎么new父类 拿子类接收 调用子类重写父类的方法 怎样才能输出子类的方法
时间: 2024-09-27 18:10:23 浏览: 66
在Cocos2d-x游戏引擎中,如果你想要通过父类的指针实例化子类,并调用其重写的方法,你可以按照以下步骤操作:
1. 定义一个父类和一个子类:首先,在`GameNode`这样的父类中声明一个虚函数(virtual function),这将允许子类重写它。
```cpp
class GameNode : public cocos2d::Node {
public:
virtual void onSomeEvent() = 0; // 声明一个虚函数
};
```
2. 子类继承并重写父类方法:
```cpp
class ChildNode : public GameNode {
public:
override void onSomeEvent() override {
// 这里是你子类的具体实现
CCLOG("This is the overridden method from ChildNode");
}
};
```
3. 实例化和调用子类的方法:
```cpp
// 创建子类的对象
ChildNode* childNode = new ChildNode();
childNode->autorelease();
// 使用父类指针调用方法
GameNode* parentNode = dynamic_cast<GameNode*>(childNode);
parentNode->onSomeEvent(); // 尽管使用的是父类指针,实际上会调用子类的方法
```
当你调用`onSomeEvent()`时,由于父类指针指向的是子类实例,所以会执行子类`ChildNode`的`onSomeEvent`方法。
阅读全文