Question: what is the difference between inheritance polymorphism and abstract classes?
Answer: Inheritance is more a static thing (one class extends another) while polymorphism is a dynamic/ runtime thing (an object behaves according to its dynamic/ runtime type not to its static/ declaration type).