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
Recall & Review
beginner
What is a base class in C#?
A base class is a class that provides common properties and methods which other classes (derived classes) can inherit and reuse.
Click to reveal answer
beginner
What does it mean for a class to be derived from a base class?
A derived class inherits members (properties and methods) from the base class and can add its own members or override existing ones.
Click to reveal answer
beginner
How do you declare a derived class in C#?
Use a colon (:) after the class name followed by the base class name. Example: <code>class Dog : Animal { }</code>
Click to reveal answer
intermediate
Can a derived class access private members of its base class?
No, private members of a base class are not accessible directly by derived classes. They can access protected or public members.
Click to reveal answer
intermediate
What is method overriding in the context of base and derived classes?
Method overriding allows a derived class to provide a new implementation of a method defined in the base class using the <code>override</code> keyword.
Click to reveal answer
Which keyword is used to inherit from a base class in C#?
Ainherits
Bextends
C:
Dimplements
✗ Incorrect
In C#, the colon (:) is used to indicate inheritance from a base class.
If class B derives from class A, which members can B access directly?
AOnly private members of A
BAll members including private of A
COnly public members of A
DPublic and protected members of A
✗ Incorrect
Derived classes can access public and protected members of the base class, but not private members.
What keyword must be used in the base class method to allow overriding?
Aabstract
Bvirtual
Cnew
Doverride
✗ Incorrect
The base class method must be marked with 'virtual' to allow derived classes to override it.
Which keyword is used in the derived class to override a base class method?
Aoverride
Bvirtual
Cnew
Dbase
✗ Incorrect
The 'override' keyword is used in the derived class to provide a new implementation of a base class method.
What happens if a derived class does not override a virtual method?
AThe base class version is used
BCompilation error occurs
CThe method is hidden
DThe method is deleted
✗ Incorrect
If a derived class does not override a virtual method, the base class version is used by default.
Explain how inheritance works between a base class and a derived class in C#.
Think about how a child inherits traits from a parent.
You got /3 concepts.
Describe the difference between private, protected, and public members in the context of base and derived classes.
Consider who can see or use each member.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a base class in C#?
easy
A. To hold common code that other classes can reuse
B. To create objects directly without inheritance
C. To prevent other classes from inheriting
D. To store data only without any methods
Solution
Step 1: Understand the role of base class
A base class contains common code that multiple classes can share to avoid repetition.
Step 2: Compare options with this role
To hold common code that other classes can reuse matches this purpose exactly, while others describe incorrect or unrelated uses.
Final Answer:
To hold common code that other classes can reuse -> Option A
Quick Check:
Base class = shared code [OK]
Hint: Base class shares code for reuse [OK]
Common Mistakes:
Thinking base class cannot be instantiated
Confusing base class with interface
Believing base class only stores data
2. Which of the following is the correct syntax to declare a derived class Car that inherits from a base class Vehicle in C#?
easy
A. class Car inherits Vehicle { }
B. class Car : Vehicle { }
C. class Car extends Vehicle { }
D. class Car -> Vehicle { }
Solution
Step 1: Recall C# inheritance syntax
In C#, a derived class uses a colon (:) followed by the base class name.
Step 2: Match options with correct syntax
class Car : Vehicle { } uses the correct syntax: class Car : Vehicle { }. Others use incorrect keywords or symbols.
Final Answer:
class Car : Vehicle { } -> Option B
Quick Check:
Inheritance syntax = colon (:) [OK]
Hint: Use colon (:) to inherit in C# [OK]
Common Mistakes:
Using 'inherits' instead of ':'
Using 'extends' like in Java
Using arrow '->' symbol
3. What will be the output of this C# code?
class Animal {
public void Speak() {
Console.WriteLine("Animal speaks");
}
}
class Dog : Animal {
public void Speak() {
Console.WriteLine("Dog barks");
}
}
class Program {
static void Main() {
Animal a = new Dog();
a.Speak();
}
}
medium
A. Compilation error
B. Dog barks
C. Animal speaks
D. Runtime error
Solution
Step 1: Understand method hiding vs overriding
The Speak method in Dog hides the base method but is not marked virtual or override.
Step 2: Check method call behavior
Since a is of type Animal, it calls Animal.Speak() ignoring Dog's method.
Final Answer:
Animal speaks -> Option C
Quick Check:
Non-virtual method call = base method [OK]
Hint: Non-virtual methods call base version [OK]
Common Mistakes:
Assuming derived method runs without override
Confusing method hiding with overriding
Expecting polymorphism without virtual keyword
4. Identify the error in this code snippet:
class Person {
public string Name;
}
class Student : Person {
public string Name;
}
class Program {
static void Main() {
Student s = new Student();
s.Name = "Alice";
Console.WriteLine(s.Name);
}
}
medium
A. No error, code runs and prints 'Alice'
B. Missing constructor in derived class
C. Derived class cannot declare a field with the same name as base class
D. Must use override keyword for Name field
Solution
Step 1: Analyze the code execution
The code declares a public field Name in both Person and Student, causing the derived field to hide the base one. This is allowed in C#.
Step 2: Determine if there is an error
The code compiles (with a compiler warning about hiding), executes successfully, and prints 'Alice' as it accesses the derived class's Name field.
Final Answer:
No error, code runs and prints 'Alice' -> Option A
Quick Check:
Field hiding allowed, no hard error [OK]
Hint: Field hiding is allowed but generates a warning [OK]
Common Mistakes:
Thinking derived class cannot declare same field name
Believing missing constructor causes issue
Mistaking fields for methods that need override
5. You want to create a base class Shape with a method Area() that derived classes Circle and Rectangle must implement differently. Which approach is best in C#?
hard
A. Use interface instead of base class for Area()
B. Make Area() a virtual method in Shape and override it in derived classes
C. Define Area() only in derived classes without base declaration
D. Declare Area() as an abstract method in Shape and implement in derived classes
Solution
Step 1: Understand requirement for method implementation in derived classes
The base class Shape should force derived classes to provide their own Area() implementation.
Step 2: Choose correct C# feature
Declaring Area() as abstract in Shape requires derived classes to implement it, matching the requirement.
Final Answer:
Declare Area() as an abstract method in Shape and implement in derived classes -> Option D
Quick Check:
Abstract method = must implement in derived [OK]
Hint: Use abstract method to force implementation [OK]