• It represents something that exists in real-life.
  • It works by contracts (which are represented by the interfaces that it implements).
  • It is unique.
  • It is immutable.
  • Its class doesn't have anything static.
  • Its name tells us what it is, not what it does.
  • Its class is either final (can't be extended via inheritance) or abstract (incomplete and uninstantiatable).