Object-oriented programming.
object; all Dogs can bark, but you need only one particular dog to do the barking.
Inheritance
"Subclasses" are more specialized versions of a class, which inherit attributes and
behaviors from their parent classes, and can introduce their own. For example, the
class Dog might have sub-classes called Collie, Chihuahua, and GoldenRetriever. In
this case, Lassie would be an instance of the Collie subclass. Suppose the Dog class
defines a method called bark() and a property called furColor. Each of its sub-classes
(Collie, Chihuahua, and GoldenRetriever) will inherit these members, meaning that
the programmer only needs to write the code for them once. Each subclass can alter
its inherited traits. For example, the Collie class might specify that the default
furColor for a collie is brown-and-white. The Chihuahua subclass might specify that
the bark() method produces a high pitch by default. Subclasses can also add new
members