Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Is-a relationship mental model in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare that Dog is a type of Animal using inheritance.

C Sharp (C#)
class Animal {}
class Dog : [1] {}
Drag options to blanks, or click blank then click option'
AAnimal
BDog
CObject
DCreature
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong class name after the colon.
Forgetting the colon and just writing the class name.
2fill in blank
medium

Complete the code to override the Speak method in the Dog class.

C Sharp (C#)
class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal sound");
    }
}
class Dog : Animal {
    public override void [1]() {
        Console.WriteLine("Bark");
    }
}
Drag options to blanks, or click blank then click option'
ASpeak
BMakeNoise
CSound
DTalk
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different method name that does not match the base class.
Forgetting to use the override keyword.
3fill in blank
hard

Fix the error in the code by completing the inheritance declaration.

C Sharp (C#)
class Vehicle {}
class Car [1] Vehicle {
    public void Drive() {
        Console.WriteLine("Driving");
    }
}
Drag options to blanks, or click blank then click option'
Ainherits
B:
Cextends
Dimplements
Attempts:
3 left
💡 Hint
Common Mistakes
Using Java or other language keywords like 'extends' or 'inherits'.
Using 'implements' which is for interfaces.
4fill in blank
hard

Complete the code to create a class Cat that inherits from Animal and overrides the Speak method.

C Sharp (C#)
class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal sound");
    }
}
class Cat : Animal {
    public [1] void Speak() {
        Console.WriteLine("Meow");
    }
}
Drag options to blanks, or click blank then click option'
A:
Boverride
Cvirtual
Dimplements
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'virtual' instead of 'override' in the derived class.
Using 'implements' instead of ':' for inheritance.
5fill in blank
hard

Fill both blanks to define a class Bird that inherits from Animal, overrides Speak, and calls the base Speak method inside it.

C Sharp (C#)
class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal sound");
    }
}
class Bird : Animal {
    public [1] void Speak() {
        [2].Speak();
        Console.WriteLine("Chirp");
    }
}
Drag options to blanks, or click blank then click option'
A:
Boverride
Cbase
Dvirtual
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to call the base method inside the override.
Using 'virtual' instead of 'override' in the derived class.
Using wrong syntax for inheritance.

Practice

(1/5)
1. What does the Is-a relationship represent in C# programming?
easy
A. A class contains another class as a member
B. A class inherits properties and methods from another class
C. A class is converted into another class
D. A class is unrelated to any other class

Solution

  1. Step 1: Understand inheritance concept

    The Is-a relationship means one class inherits from another, gaining its features.
  2. Step 2: Identify correct description

    A class inherits properties and methods from another class correctly describes inheritance, while others describe different concepts.
  3. Final Answer:

    A class inherits properties and methods from another class -> Option B
  4. Quick Check:

    Is-a means inheritance = B [OK]
Hint: Is-a means inheritance, not containment or conversion [OK]
Common Mistakes:
  • Confusing Is-a with Has-a (containment)
  • Thinking Is-a means type conversion
  • Assuming unrelated classes have Is-a relationship
2. Which of the following is the correct syntax to express an Is-a relationship in C#?
easy
A. class Dog inherits Animal {}
B. class Dog extends Animal {}
C. class Dog : Animal {}
D. class Dog -> Animal {}

Solution

  1. Step 1: Recall C# inheritance syntax

    In C#, the colon (:) symbol is used to indicate inheritance.
  2. Step 2: Compare options

    class Dog : Animal {} uses the correct syntax 'class Dog : Animal {}'. Others use incorrect keywords or symbols.
  3. Final Answer:

    class Dog : Animal {} -> Option C
  4. Quick Check:

    C# inheritance uses ':' = C [OK]
Hint: Use ':' to inherit in C# classes [OK]
Common Mistakes:
  • Using 'inherits' keyword (not valid in C#)
  • Using 'extends' (Java syntax)
  • Using arrows or other symbols
3. Consider this code:
class Animal { public string Speak() => "Sound"; } class Dog : Animal { }

What is the output of:
var d = new Dog(); Console.WriteLine(d.Speak());
medium
A. Runtime error
B. Dog
C. Compile error
D. Sound

Solution

  1. Step 1: Understand inheritance effect

    Dog inherits from Animal, so Dog has the Speak() method.
  2. Step 2: Predict method call output

    Calling d.Speak() returns "Sound" from Animal class.
  3. Final Answer:

    Sound -> Option D
  4. Quick Check:

    Inherited method returns "Sound" = A [OK]
Hint: Inherited methods can be called on child objects [OK]
Common Mistakes:
  • Expecting Dog to override Speak() automatically
  • Thinking code causes compile or runtime error
  • Confusing output with class name
4. Identify the error in this code snippet:
class Animal { } class Dog Animal { }
medium
A. Missing colon ':' between Dog and Animal
B. Dog cannot inherit from Animal
C. Animal class must be abstract
D. Dog class must have a constructor

Solution

  1. Step 1: Check inheritance syntax

    In C#, inheritance requires a colon ':' between child and parent class names.
  2. Step 2: Identify missing symbol

    The code misses ':' between Dog and Animal, causing syntax error.
  3. Final Answer:

    Missing colon ':' between Dog and Animal -> Option A
  4. Quick Check:

    Inheritance needs ':' = A [OK]
Hint: Always use ':' to inherit in C# [OK]
Common Mistakes:
  • Forgetting the colon ':'
  • Thinking parent class must be abstract
  • Assuming constructor is mandatory
5. Given these classes:
class Vehicle { public virtual string Move() => "Moving"; } class Car : Vehicle { public override string Move() => "Car is moving"; } class Bike : Vehicle { }

What will be the output of:
Vehicle v1 = new Car(); Vehicle v2 = new Bike(); Console.WriteLine(v1.Move()); Console.WriteLine(v2.Move());
hard
A. Car is moving\nMoving
B. Moving\nMoving
C. Car is moving\nBike is moving
D. Compile error due to missing override

Solution

  1. Step 1: Understand virtual and override behavior

    Car overrides Move(), so v1.Move() calls Car's version. Bike does not override, so v2.Move() calls Vehicle's version.
  2. Step 2: Predict output lines

    v1.Move() outputs "Car is moving"; v2.Move() outputs "Moving".
  3. Final Answer:

    Car is moving\nMoving -> Option A
  4. Quick Check:

    Override changes output, no override uses base = D [OK]
Hint: Override changes method output; no override uses base method [OK]
Common Mistakes:
  • Expecting Bike to output 'Bike is moving'
  • Thinking missing override causes compile error
  • Confusing which method is called