In OOP paradigm, from the programmers point of view, an object-oriented language must support three very important explicit characteristics. We use these concepts extensively to model the real-world problems when we are trying to solve with our object-oriented programs. These three concepts are:
The implicit characteristic is abstraction. We use it to specify new abstract data types, or ADT for short.