Polymorphism

Polymorphism is a core concept in OOP and goes hand in hand with inheritance. You can use an object from type of a subclass always like an object from type of a superclass. By example if you create a class that extends RunBaseBatch you can use it always like a RunBaseBatch Object.

Example
class MyBatch extends RunBaseBatch { ... }

RunBaseBatch batch = new MyBatch; batch.run;