Udfordring: Øvelse med Modifikatorer
Du får en klasse ved navn Person
med et felt til at gemme name
. Derudover er der to klasser ved navn Student
og Teacher
, som nedarver fra Person
.
Der er nogle fejl i programmet på grund af ufuldstændig kode. Din opgave er at færdiggøre koden ved at:
- Få både
Student
ogTeacher
til at arve fraPerson
-klassen; - Sikre, at feltet
name
er tilgængeligt i underklasserne, men utilgængeligt fra alle andre steder.
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(); } }
- I denne opgave skal du først bruge konceptet af afledte klasser og derefter adgangsmodifikatorer.
- Vi bruger symbolet
:
til at angive forældreklassen i definitionen af en underklasse (afledt klasse). - Husk, hvilken adgangsmodifikator der er passende for feltet
name
for at skjule det uden for klassen, men gøre det tilgængeligt for underklasserne.
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(); } }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores 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
Udfordring: Øvelse med Modifikatorer
Stryg for at vise menuen
Du får en klasse ved navn Person
med et felt til at gemme name
. Derudover er der to klasser ved navn Student
og Teacher
, som nedarver fra Person
.
Der er nogle fejl i programmet på grund af ufuldstændig kode. Din opgave er at færdiggøre koden ved at:
- Få både
Student
ogTeacher
til at arve fraPerson
-klassen; - Sikre, at feltet
name
er tilgængeligt i underklasserne, men utilgængeligt fra alle andre steder.
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(); } }
- I denne opgave skal du først bruge konceptet af afledte klasser og derefter adgangsmodifikatorer.
- Vi bruger symbolet
:
til at angive forældreklassen i definitionen af en underklasse (afledt klasse). - Husk, hvilken adgangsmodifikator der er passende for feltet
name
for at skjule det uden for klassen, men gøre det tilgængeligt for underklasserne.
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(); } }
Tak for dine kommentarer!