# Decorator Pattern: Abstract Decorators

**URL:** <https://forum.kirupa.com/t/decorator-pattern-abstract-decorators/281336>\
**Category:** flash\
**Created:** [February 7, 2009, 8:28pm UTC](https://forum.kirupa.com/t/decorator-pattern-abstract-decorators/281336 "2009-02-07T20:28:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![motionsmith](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@motionsmith](https://forum.kirupa.com/u/motionsmith)\
**Post date:** [February 7, 2009, 8:28pm UTC](https://forum.kirupa.com/t/decorator-pattern-abstract-decorators/281336/1 "2009-02-07T20:28:15Z")

</div>

So I’m building [this engine](http://citrusengine.com), and I’m looking to use the decorator pattern to build out the characters’ functionality in a modular fashion, so the Goomba might look something like this:

Concrete Character

- walkDecoration
- bounceOffWallDecoration
- venerableHeadDecoration

That way people who make the characters can just piece together their enemies (or hero) through a series of pre-built decorations.

I understand the decorator pattern for the most part. However, my book resource says that my abstract decorator needs to RE-IMPLEMENT all of the methods of the abstract component. All the examples shown have the methods literally re-implemented as if they just copied/pasted and added the word “override”. First of all, I don’t quite understand why that needs to be done. Second of all, can I just called super.method()? It would be a big problem for me to have to track changes through to identical classes, because my abstract character class is so lengthy.

Hoping for some clarity,  
Eric Smith
