Attributes vs State

In #Classes and Objects we wrote that an object’s attributes and behaviors are defined in classes and that attributes of an object are tracked by its states, while behaviors are what objects are capable of doing.

But this is still a bit confusing. Here is a table

Concept Meaning
Attributes What the object is made of: its instance variables' name and value. It also have to be accesssible from outside, i.e. have getter/setter methods.
States Collection of all instance variables and their values. All the object's attributes.
Behaviors What the object is able to do: its instance methods.

Regarding inheritance: instance variables are not inherited and have nothing to do with the inheritance mechanism. They appear to be inherited because instance variables are created by the methods that first assign values to them. Those methods are often inherited.