Object-Oriented Programming Concept
Generally, OOP concept includes features like polymorphism, encapsulation, inheritance, access control, object reuse, late binding, etc. These terms are too formal to understand. How they are related with our real life, let's start from here in coding.
Object-oriented programming involves two common senses. One is "has-a" relationship, the other is "is-a" relationship.
The "has-a" relationship describes the member field of an object. If you can talk something with word "has", such thing can be described as a member field in an object in Java code.
The "is-a" relationship describes inheritance relationship between objects. If you can talk something with word "is". They can be described with keyword extends.
Everything can be described as an object. Every object has characteristics or states, more formally, properties. The relationships mentioned above are the structure of the object. These concepts are abstract. Mary feels bad about such explanation. Let's describe an object with these two relationships later on.