So what does this have to do with with the foundation topic of object oriented programming, Object Inheritance? Well, let me tell you a story...
My son wanted to make a friend that would follow him around and carry stuff for him in the game. (Geek Benefit #3: We can make our own friends if we can't make friends.) He started by creating a command block that cloned a mini armor stand and named it Timmy. Timmy unfortunately was a rather boring friend because it just stood in one place and did nothing.
What to do? Well, there is a thing in the game that does follow a player around. So my son decided to clone a dog. He updated the command block to make Timmy always be where the dog was. That looked weird so he made the dog invisible. Cool! Just like that Timmy has inherited the dog's AI.
But that was not enough. Timmy needed to follow him around AND carry stuff. Minecraft Riddle: "What's mobile and carries a chest?" Minecraft Answer: "A donkey." So next he cloned an invisible mule and made it stick to Timmy too.
And poof, we now have a mini armor stand named Timmy that has the AI of a dog and the carrying capacity of a mule!
So instead of the boring "pet shop" inheritance example in the first C++ book I read