Exploring inheritance and abstract methods