Basic Concepts of OOP
5. Function and Operator Overloading. A class may contain several functions with the same function name but with different arguments, or operators such as + , -, *, and / are used to define operations on different objects, e.g.... matrix multiply can be defined as A * B, where A and B are objects of type Matrix.
6. Polymorphism where objects of distinct classes can be manipulated using only knowledge of their common properties without regard for their exact class.