allows polymorphism too. A virtual property or method has an implementation in the base class, and can be overriden in the derived classes.
is the action of modifying or replacing the implementation of the parent class with a new one. Parent classes with virtual or abstract members allow derived classes to override them.