The fundamental concepts of object-oriented programming are
based on three concepts: abstract data types, inheritance, and
dynamic binding. Explain how object-oriented programming languages
such as Smalltalk, C++, Java, and Objective-C support these
concepts.