Demonstrating polymorphism through interfaces and abstract class