What keyword in Ruby is used to call a method from the parent class?
The <code>super</code> keyword is used to call a method from the parent class in Ruby.
Click to reveal answer
intermediate
How does super behave when called without arguments inside a method?
When super is called without arguments, it passes all the arguments received by the current method to the parent method.
Click to reveal answer
intermediate
What happens if you call super() with empty parentheses in a method?
Calling super() with empty parentheses calls the parent method without passing any arguments, even if the current method received some.
Click to reveal answer
advanced
Can super be used to access parent methods with different names?
No, super calls the parent method with the same name as the current method. To call a differently named parent method, you must call it explicitly with ParentClassName.method_name.
Click to reveal answer
beginner
Example: How to override a method and still use the parent method's behavior in Ruby?
You override the method in the child class and inside it call <code>super</code> to reuse the parent method's code. For example:<br><pre>class Parent
def greet
"Hello"
end
end
class Child < Parent
def greet
super + ", world!"
end
end
Child.new.greet # => "Hello, world!"</pre>
Click to reveal answer
In Ruby, what does super do inside a method?
ACalls the parent class's method with the same name
BCalls any method from the parent class
CCalls a method from a sibling class
DCalls the current method recursively
✗ Incorrect
super calls the parent class's method that has the same name as the current method.
What happens if you call super() with empty parentheses in a Ruby method?
APasses no arguments to the parent method
BCauses an error
CPasses all current method arguments to the parent method
DCalls a different method in the parent class
✗ Incorrect
super() calls the parent method without passing any arguments.
If a child method receives arguments but calls super without parentheses, what happens?
AParent method is called with no arguments
BParent method is called with the same arguments
CParent method is not called
DAn error is raised
✗ Incorrect
Calling super without parentheses passes the current method's arguments to the parent method.
How can you call a parent method with a different name than the current method?
AIt is not possible
BUsing <code>super</code> with the method name
CUsing <code>super()</code> with arguments
DUsing <code>ParentClassName.method_name</code>
✗ Incorrect
You must call the parent method explicitly by its class and method name.
What is the purpose of using super in a child class method?
ATo call a method from another unrelated class
BTo completely replace the parent method
CTo extend or reuse the parent method's behavior
DTo call the child method recursively
✗ Incorrect
super helps reuse or extend the parent method's code inside the child method.
Explain how the super keyword works in Ruby when overriding methods.
Think about how you can reuse code from the parent method inside the child method.
You got /3 concepts.
Describe how to call a parent class method that has a different name than the current method in Ruby.
Remember that super only calls methods with the same name.
You got /3 concepts.
Practice
(1/5)
1. In Ruby, how do you call a method from a parent class inside a child class method?
easy
A. Use parent.method_name
B. Call the parent method by its name directly
C. Use this.parent.method_name
D. Use super inside the child method
Solution
Step 1: Understand method inheritance in Ruby
Child classes inherit methods from parent classes but to call the parent's version inside an overridden method, you use super.
Step 2: Identify the correct syntax for calling parent method
Using super inside the child method calls the parent method with the same name.
Final Answer:
Use super inside the child method -> Option D
Quick Check:
Calling parent method = super [OK]
Hint: Use super to call parent method inside child [OK]
Common Mistakes:
Trying to call parent method by name directly
Using non-existent syntax like parent.method_name
Confusing this with Ruby's self
2. Which of the following is the correct syntax to call a parent class method with arguments in Ruby?
easy
A. super arg1, arg2
B. super(arg1 arg2)
C. super[arg1, arg2]
D. super{arg1, arg2}
Solution
Step 1: Recall Ruby method call syntax
In Ruby, method arguments are passed separated by commas without brackets unless parentheses are used.
Step 2: Identify correct super usage with arguments
The correct way is super arg1, arg2 or super(arg1, arg2). super arg1, arg2 uses the correct syntax without parentheses.
Final Answer:
super arg1, arg2 -> Option A
Quick Check:
Pass args to super with commas [OK]
Hint: Pass arguments to super separated by commas [OK]
Common Mistakes:
Using brackets [] or braces {} instead of parentheses or commas
Omitting commas between arguments
Using incorrect syntax like super(arg1 arg2)
3. What will be the output of this Ruby code?
class Parent
def greet(name)
"Hello, #{name} from Parent"
end
end
class Child < Parent
def greet(name)
super(name) + " and Child"
end
end
puts Child.new.greet("Alice")
medium
A. "Hello, Alice from Child"
B. "Hello, Alice from Parent and Child"
C. "Hello, Alice from Parent"
D. Error: wrong number of arguments
Solution
Step 1: Understand method overriding and super call
The Child#greet method calls super(name), which calls Parent#greet(name) and returns "Hello, Alice from Parent".
Step 2: Concatenate the returned string
The child method adds " and Child" to the parent's returned string, resulting in "Hello, Alice from Parent and Child".
Final Answer:
"Hello, Alice from Parent and Child" -> Option B
Quick Check:
super returns parent's string + child's addition [OK]
Hint: super returns parent's result; child adds more [OK]
Common Mistakes:
Thinking super calls child's method again causing recursion
Ignoring the concatenation after super call
Assuming super without arguments forwards none
4. Identify the error in this Ruby code snippet:
class Parent
def info
"Parent info"
end
end
class Child < Parent
def info
super()
puts "Child info"
end
end
Child.new.info
medium
A. super() returns value but is ignored; only child info prints
B. Runtime error: super() called without arguments
C. Syntax error: super() should not have parentheses
D. No error; outputs both parent and child info
Solution
Step 1: Analyze the super call with parentheses
Calling super() calls the parent method with no arguments and returns "Parent info" but does not print it.
Step 2: Check what is printed
The child method prints only "Child info" because the parent's return value is ignored.
Final Answer:
super() returns value but is ignored; only child info prints -> Option A
Quick Check:
super() returns but doesn't print [OK]
Hint: super() returns value; print it to see output [OK]
Common Mistakes:
Assuming super() prints parent's return value automatically
Thinking super() without args causes error
Confusing syntax error with runtime behavior
5. Given this Ruby code, what will be the output?
class A
def message
"A"
end
end
class B < A
def message
"B" + super
end
end
class C < B
def message
super + "C"
end
end
puts C.new.message
hard
A. "ABC"
B. "BCA"
C. "BAC"
D. "CAB"
Solution
Step 1: Trace method calls from C to A
C#message calls super which is B#message. B#message returns "B" + super which calls A#message returning "A".
Step 2: Combine returned strings step-by-step
B#message returns "B" + "A" = "BA". Then C#message returns "BA" + "C" = "BAC".
Final Answer:
"BAC" -> Option C
Quick Check:
super chains add strings in order [OK]
Hint: super calls chain up; combine results in call order [OK]
Common Mistakes:
Mixing order of concatenation
Assuming super calls only immediate parent
Ignoring that super returns parent's result
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.