you do not want to combine interfaces and implementation classes in the same file
user of your class only interested in the interface - so this is what he should be able to see
your class could resize in the different assembly that could be delivered as dll without opening the code of the class
In this case just by adding dll with class implementing new type of character - you can extend the functionality of the application without rewriting the application code since it was only interested in the interface