Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Challenge: Modifiers Practice | OOP Essentials
C# Beyond Basics

bookChallenge: Modifiers Practice

You are given a class named Person with a field to store the name. Additionally, there are two classes named Student and Teacher which derive from Person.

There are some errors in the program because of some incomplete code. Your task is to complete the code by:

  1. Making both Student and Teacher inherit from the Person class;
  2. Ensure that the name field is accessible in the child classes but inaccessible from anywhere else.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using System; public class Person { // Field to store the name string name; } public class Student { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
  1. In this task first you need to use the concept of derived classes, then the access modifiers.
  2. We use the : symbol to specify the parent class in the definition of a child (derived) class.
  3. Recall which access modifier is appropriate for the name field to hide it from the outside of the class but make it accessible from the child classes.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; public class Person { // Field to store the name protected string name; } public class Student : Person { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher : Person { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 4. ChapterΒ 4

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Awesome!

Completion rate improved to 2.04

bookChallenge: Modifiers Practice

Swipe to show menu

You are given a class named Person with a field to store the name. Additionally, there are two classes named Student and Teacher which derive from Person.

There are some errors in the program because of some incomplete code. Your task is to complete the code by:

  1. Making both Student and Teacher inherit from the Person class;
  2. Ensure that the name field is accessible in the child classes but inaccessible from anywhere else.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using System; public class Person { // Field to store the name string name; } public class Student { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
  1. In this task first you need to use the concept of derived classes, then the access modifiers.
  2. We use the : symbol to specify the parent class in the definition of a child (derived) class.
  3. Recall which access modifier is appropriate for the name field to hide it from the outside of the class but make it accessible from the child classes.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; public class Person { // Field to store the name protected string name; } public class Student : Person { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher : Person { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 4. ChapterΒ 4
some-alt