Encapsulation and inheritance in object-oriented programming languages | Synapse