An object consists of data and methods that operate on that data. An object performs operations when it receives requests from a client. Encapsulation ensures an object's internal state can only be changed through its methods and is protected from outside access, promoting loosely coupled software components. Interfaces define the complete set of requests that can be sent to an object. Polymorphism allows different objects to be substituted through their shared interfaces at runtime.
Related topics: