DEV Community

Cover image for What is Object Orientated Programming (Part Two - Inheritance)
Aweys Ahmed
Aweys Ahmed

Posted on • Edited on

What is Object Orientated Programming (Part Two - Inheritance)

In today's blog post we will be diving into class inheritance from a Ruby perspective.

If you need a refresher about classes, you can read my previous blog post here.

Classes are blueprints for creating objects. So if you wanted to create a new object that needed a new blueprint you would create a new class.

However, this can create repetition. Let's look at an example of this.

class Cat def endothermic true end def live_birth true end end 
Enter fullscreen mode Exit fullscreen mode
class Dog def endothermic true end def live_birth true end end 
Enter fullscreen mode Exit fullscreen mode

We can improve the cat and dog class by using inheritance. If we create a superclass that contains the methods that are common to both the cat and dog class, then we can have the classes inherit from the superclass.

class Mammal def endothermic true end def live_birth true end end 
Enter fullscreen mode Exit fullscreen mode

Now that we have a Mammal class, we can now use inheritance to DRY up our code. The "<" indicates that this is an inheritance.

class Cat < Mammal end class Dog < Mammal end annabelle = Dog.new stella = Cat.new puts stella.endothermic # output true puts annabelle.endothermic # output true 
Enter fullscreen mode Exit fullscreen mode

In Ruby, a class can only have one parent that they inherit from. However, modules can be a way around this constraint.

The next blog post will cover super and modules.

Top comments (0)