Overwritte the setOpacity,but is not work!!

The DSSpriteHolder is the subclass of CCSprite.And overwritte the setOpacity like this:
class DSSpriteHolder : public CCSprite,public CCRGBAProtocol{
public:
DSSpriteHolder(){};
virtual ~DSSpriteHolder(){};
virtual void setOpacity(GLubyte opacity);
//…test
void test();
};
But when I use the object of DSSpriteHolder to call setOpacity,it’s call the function of CCSprite’s setOpacity,not the DSSpriteHolder’s!
Anywhere wrong in my code?