When Car and Truck inherit from Vehicle, the inherited hook prints a message automatically.
Ruby
class Vehicle
defself.inherited(subclass)
puts"A new vehicle type was created: #{subclass}"endendclass Car < Vehicle
endclass Truck < Vehicle
end
OutputSuccess
Important Notes
The inherited hook runs only once per subclass creation.
You can use it to set up subclass-specific data or behavior.
Summary
The inherited hook is a special class method called when a subclass is made.
It helps automate tasks related to subclass creation.
Use it to track, modify, or initialize subclasses easily.
Practice
(1/5)
1. What does the inherited hook method do in Ruby?
easy
A. It is called automatically when a subclass is created.
B. It runs when an instance of a class is created.
C. It is used to define class variables.
D. It is called when a method is overridden.
Solution
Step 1: Understand the purpose of inherited
The inherited method is a special hook in Ruby that triggers when a subclass is created from a parent class.
Step 2: Differentiate from other hooks
It is not related to instance creation, method overriding, or variable definition, but specifically to subclass creation.
Final Answer:
It is called automatically when a subclass is created. -> Option A
Quick Check:
Inherited hook = called on subclass creation [OK]
Hint: Inherited hook triggers only on subclass creation [OK]
Common Mistakes:
Confusing inherited with initialize method
Thinking it runs on instance creation
Mixing it with method override hooks
2. Which of the following is the correct way to define an inherited hook in a Ruby class?
easy
A. def self.inherited; puts "New subclass created"; end
B. def inherited(self); puts "New subclass created"; end
C. def inherited(subclass); puts "New subclass created"; end
D. def self.inherited(subclass); puts "New subclass created"; end
Solution
Step 1: Recognize the method signature
The inherited hook must be defined as a class method, so it needs self.inherited and takes one argument: the subclass.
Step 2: Check method parameters and syntax
def self.inherited(subclass); puts "New subclass created"; end correctly defines the class method with the subclass parameter. Incorrect versions lack self. (instance method), omit the subclass parameter, or use wrong parameters like self.
Final Answer:
def self.inherited(subclass); puts "New subclass created"; end -> Option D
Quick Check:
Class method with subclass param = def self.inherited(subclass); puts "New subclass created"; end [OK]
Hint: Inherited hook is a class method with subclass param [OK]
Common Mistakes:
Defining inherited as instance method
Omitting the subclass parameter
Forgetting self. for class method
3. What will be the output of this Ruby code?
class Parent
def self.inherited(subclass)
puts "Subclass: #{subclass}"
end
end
class Child < Parent
end
medium
A. No output
B. Subclass: Child
C. Subclass: Parent
D. SyntaxError
Solution
Step 1: Understand when inherited runs
The inherited method in Parent runs automatically when a subclass is created.
Step 2: Identify subclass creation
When Child < Parent is declared, Parent.inherited(Child) is called, printing "Subclass: Child".