DEV Community 👩‍💻👨‍💻

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

Posted on • Updated 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)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git