Bird
Raised Fist0
Rubyprogramming~5 mins

Subclass with < operator in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the < operator mean when used between two classes in Ruby?
The &lt; operator checks if the left class is a subclass of the right class. It returns true if the left class inherits from the right class, otherwise nil.
Click to reveal answer
beginner
How can you check if class B is a subclass of class A in Ruby?
You can write B < A. If B inherits from A, this expression returns true.
Click to reveal answer
beginner
Given <br><code>class Animal; end<br>class Dog &lt; Animal; end</code><br>What is the result of <code>Dog &lt; Animal</code>?
It returns true because Dog is a subclass of Animal.
Click to reveal answer
beginner
What will Animal < Dog return given the previous classes?
It returns nil because Animal is not a subclass of Dog; it is the other way around.
Click to reveal answer
intermediate
Can the &lt; operator be used to check subclass relationships between unrelated classes?
No. If the classes are unrelated, the &lt; operator returns nil, meaning no subclass relationship exists.
Click to reveal answer
What does Child < Parent return if Child inherits from Parent?
ARaises an error
Bfalse
Cnil
Dtrue
What does Parent < Child return if Child inherits from Parent?
Atrue
Bnil
Cfalse
DRaises an error
What is the result of String < Numeric in Ruby?
Anil
Btrue
Cfalse
DRaises an error
Which operator checks subclass relationships between classes in Ruby?
A==
B&gt;
C&lt;
D!=
If class Cat < Animal; end, what does Cat < Animal return?
Atrue
BRaises an error
Cnil
Dfalse
Explain how the < operator works to check subclass relationships in Ruby.
Think about inheritance and how Ruby checks if one class inherits from another.
You got /3 concepts.
    Describe what happens when you compare two unrelated classes using the < operator in Ruby.
    Consider what Ruby returns when no inheritance link exists.
    You got /3 concepts.

      Practice

      (1/5)
      1. In Ruby, what does the expression ChildClass < ParentClass check?
      easy
      A. If ChildClass and ParentClass are the same class
      B. If ChildClass is an instance of ParentClass
      C. If ChildClass is a subclass of ParentClass
      D. If ParentClass is a subclass of ChildClass

      Solution

      1. Step 1: Understand the < operator for classes

        In Ruby, the < operator between classes checks inheritance, specifically if the left class is a subclass of the right class.
      2. Step 2: Apply to ChildClass < ParentClass

        This expression returns true if ChildClass inherits from ParentClass, meaning ChildClass is a subclass.
      3. Final Answer:

        If ChildClass is a subclass of ParentClass -> Option C
      4. Quick Check:

        Subclass check = true if inheritance [OK]
      Hint: Remember: < means 'is subclass of' in Ruby classes [OK]
      Common Mistakes:
      • Confusing subclass check with instance check
      • Thinking < checks equality of classes
      • Reversing the order of classes in the expression
      2. Which of the following is the correct syntax to check if Dog is a subclass of Animal in Ruby?
      easy
      A. Dog < Animal
      B. Dog.is_subclass_of?(Animal)
      C. Dog.subclass_of? Animal
      D. Dog < Animal()

      Solution

      1. Step 1: Recall Ruby subclass syntax

        Ruby uses the < operator between classes to check subclass relationships, like Dog < Animal.
      2. Step 2: Evaluate options

        Methods like is_subclass_of? and subclass_of? do not exist on classes. Dog < Animal() has incorrect syntax with parentheses. Only Dog < Animal is valid Ruby syntax.
      3. Final Answer:

        Dog < Animal -> Option A
      4. Quick Check:

        Correct syntax uses < operator [OK]
      Hint: Use < directly between classes, no method needed [OK]
      Common Mistakes:
      • Using methods that don't exist for subclass check
      • Adding parentheses incorrectly
      • Using instance methods instead of class operators
      3. What is the output of this Ruby code?
      class Vehicle; end
      class Car < Vehicle; end
      class Bike; end
      
      puts Car < Vehicle
      puts Bike < Vehicle
      medium
      A. false false
      B. true false
      C. true true
      D. false true

      Solution

      1. Step 1: Analyze class inheritance

        Car inherits from Vehicle, so Car < Vehicle returns true. Bike does not inherit from Vehicle, so Bike < Vehicle returns false.
      2. Step 2: Determine output of puts statements

        The first puts prints true, the second prints false, each on its own line.
      3. Final Answer:

        true false -> Option B
      4. Quick Check:

        Subclass true, unrelated false [OK]
      Hint: Subclass < Parent = true; unrelated classes = false [OK]
      Common Mistakes:
      • Assuming unrelated classes return true
      • Confusing instance and class comparisons
      • Mixing up order of classes in < operator
      4. Consider this Ruby code snippet:
      class Fruit; end
      class Apple < Fruit; end
      
      puts Apple < fruit

      What is the error and how to fix it?
      medium
      A. No error; output is true
      B. SyntaxError: invalid syntax; fix by adding parentheses
      C. TypeError: wrong argument type; fix by using instance instead of class
      D. NameError: uninitialized constant 'fruit'; fix by capitalizing 'Fruit'

      Solution

      1. Step 1: Identify the error

        The code uses lowercase 'fruit' instead of 'Fruit'. Ruby constants (classes) must start with uppercase letters. This causes a NameError.
      2. Step 2: Fix the error

        Change 'fruit' to 'Fruit' to reference the class correctly.
      3. Final Answer:

        NameError: uninitialized constant 'fruit'; fix by capitalizing 'Fruit' -> Option D
      4. Quick Check:

        Class names start uppercase [OK]
      Hint: Class names always start with uppercase letter [OK]
      Common Mistakes:
      • Using lowercase for class names
      • Confusing variables with class constants
      • Trying to call < on instances instead of classes
      5. You have these Ruby classes:
      class Animal; end
      class Mammal < Animal; end
      class Dog < Mammal; end
      class Fish < Animal; end
      
      puts Dog < Animal
      puts Fish < Mammal
      puts Mammal < Dog

      What is the output and why?
      hard
      A. true false false
      B. true true false
      C. false false true
      D. true false true

      Solution

      1. Step 1: Evaluate Dog < Animal

        Dog inherits from Mammal, which inherits from Animal, so Dog is a subclass of Animal. Returns true.
      2. Step 2: Evaluate Fish < Mammal

        Fish inherits directly from Animal, not Mammal. So Fish is not a subclass of Mammal. Returns false.
      3. Step 3: Evaluate Mammal < Dog

        Mammal is a superclass of Dog, not a subclass. So this returns false.
      4. Final Answer:

        true false false -> Option A
      5. Quick Check:

        Subclass chain true, unrelated or reversed false [OK]
      Hint: Subclass < superclass = true; reversed or unrelated = false [OK]
      Common Mistakes:
      • Assuming superclass < subclass returns true
      • Ignoring multi-level inheritance
      • Mixing up class hierarchy direction
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard