You could use both an interface and an abstract class,
You could use an interface to define what the method signatures that other methods can call,
The abstract class could then be used for common code between the 3 classes, if there is no common code then its better just to have an interface but if there is common code then its good to have an abstract class,
Either will work. I can't off the top of my head think of a reason to favor one over the other. I would probably use the second approach, just because the decorator needs to appear as if it is the thing it decorates, so why not make that literally true.