Challenge: 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:
- Making both
Student
andTeacher
inherit from thePerson
class; - Ensure that the
name
field is accessible in the child classes but inaccessible from anywhere else.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546using 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(); } }
- In this task first you need to use the concept of derived classes, then the access modifiers.
- We use the
:
symbol to specify the parent class in the definition of a child (derived) class. - 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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(); } }
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
What is the correct access modifier to use for the `name` field?
Can you show an example of how to define the inheritance for `Student` and `Teacher`?
Can you explain why the `name` field should not be public?
Awesome!
Completion rate improved to 2.04
Challenge: 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:
- Making both
Student
andTeacher
inherit from thePerson
class; - Ensure that the
name
field is accessible in the child classes but inaccessible from anywhere else.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546using 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(); } }
- In this task first you need to use the concept of derived classes, then the access modifiers.
- We use the
:
symbol to specify the parent class in the definition of a child (derived) class. - 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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(); } }
Thanks for your feedback!