Ruby Q & A

 

What is inheritance in Ruby?

Inheritance in Ruby is a fundamental concept in object-oriented programming (OOP) that allows you to create new classes based on existing classes, inheriting their attributes and behaviors. It promotes code reuse, abstraction, and hierarchy within your application’s class structure. In Ruby, a class that inherits from another class is called a subclass or derived class, while the class being inherited from is referred to as the superclass or base class.

Key points about inheritance in Ruby:

  1. Creating Subclasses: To create a subclass, you use the `<` symbol followed by the name of the superclass when defining the class. This establishes an “is-a” relationship, indicating that the subclass is a specialized version of the superclass.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
```ruby
class Animal
def speak
puts "Some sound"
end
end
class Dog < Animal
def speak
puts "Woof!"
end
end
```
```ruby class Animal def speak puts "Some sound" end end class Dog < Animal def speak puts "Woof!" end end ```
```ruby

   class Animal

     def speak

       puts "Some sound"

     end

   end




   class Dog < Animal

     def speak

       puts "Woof!"

     end

   end

   ```

   In this example, `Dog` is a subclass of `Animal`, and it inherits the `speak` method from its superclass.

 

  1. Inheriting Methods and Attributes: Subclasses inherit all the methods and attributes (instance variables) of their superclass. This means that you can reuse and extend the functionality of the superclass in the subclass without rewriting the same code.

 

  1. Overriding Methods: Subclasses have the option to override methods inherited from the superclass. This allows you to provide a specific implementation for a method in the subclass while maintaining the same method name as the superclass.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
```ruby
class Cat < Animal
def speak
puts "Meow!"
end
end
```
```ruby class Cat < Animal def speak puts "Meow!" end end ```
  ```ruby

   class Cat < Animal

     def speak

       puts "Meow!"

     end

   end

   ```

   Here, the `Cat` class overrides the `speak` method to provide its own behavior.

 

  1. Super Keyword: In overridden methods, you can use the `super` keyword to call the corresponding method in the superclass. This enables you to leverage the functionality of the superclass while adding specific behavior in the subclass.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
```ruby
class Dog < Animal
def speak
super
puts "Wagging tail"
end
end
```
```ruby class Dog < Animal def speak super puts "Wagging tail" end end ```
```ruby

   class Dog < Animal

     def speak

       super

       puts "Wagging tail"

     end

   end

   ```

   In this example, `super` calls the `speak` method of the `Animal` superclass before adding the “Wagging tail” behavior.

Inheritance in Ruby is a powerful mechanism for creating hierarchical relationships among classes and organizing code in a structured and reusable manner. It helps in building a more modular and maintainable codebase by promoting the sharing and extension of functionality across related classes.

Previously at
Flag Argentina
Chile
time icon
GMT-3
Experienced software professional with a strong focus on Ruby. Over 10 years in software development, including B2B SaaS platforms and geolocation-based apps.