Added virtual print function

Each class must specify how it prints to the console