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
class Dog
def endothermic
true
end
def live_birth
true
end
end
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
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
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)