Uitdaging: Oefening met Modificatoren
Je krijgt een klasse genaamd Person
met een veld om de name
op te slaan. Daarnaast zijn er twee klassen genaamd Student
en Teacher
die afgeleid zijn van Person
.
Er zitten enkele fouten in het programma vanwege onvolledige code. Je taak is om de code te voltooien door:
- Zowel
Student
alsTeacher
te laten erven van de klassePerson
; - Ervoor te zorgen dat het veld
name
toegankelijk is in de afgeleide klassen, maar niet toegankelijk is vanuit andere locaties.
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 deze opdracht moet je eerst het concept van afgeleide klassen gebruiken, daarna de toegangsmodificatoren.
- We gebruiken het symbool
:
om de bovenliggende klasse te specificeren in de definitie van een afgeleide klasse. - Bedenk welke toegangsmodificator geschikt is voor het veld
name
om het te verbergen voor buitenstaanders, maar toegankelijk te maken voor afgeleide klassen.
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(); } }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Uitdaging: Oefening met Modificatoren
Veeg om het menu te tonen
Je krijgt een klasse genaamd Person
met een veld om de name
op te slaan. Daarnaast zijn er twee klassen genaamd Student
en Teacher
die afgeleid zijn van Person
.
Er zitten enkele fouten in het programma vanwege onvolledige code. Je taak is om de code te voltooien door:
- Zowel
Student
alsTeacher
te laten erven van de klassePerson
; - Ervoor te zorgen dat het veld
name
toegankelijk is in de afgeleide klassen, maar niet toegankelijk is vanuit andere locaties.
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 deze opdracht moet je eerst het concept van afgeleide klassen gebruiken, daarna de toegangsmodificatoren.
- We gebruiken het symbool
:
om de bovenliggende klasse te specificeren in de definitie van een afgeleide klasse. - Bedenk welke toegangsmodificator geschikt is voor het veld
name
om het te verbergen voor buitenstaanders, maar toegankelijk te maken voor afgeleide klassen.
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(); } }
Bedankt voor je feedback!