Utmaning: Övning på Modifierare
Du har en klass som heter Person
med ett fält för att lagra name
. Dessutom finns det två klasser, Student
och Teacher
, som ärver från Person
.
Det finns vissa fel i programmet på grund av ofullständig kod. Din uppgift är att komplettera koden genom att:
- Göra så att både
Student
ochTeacher
ärver från klassenPerson
; - Säkerställa att fältet
name
är åtkomligt i barnklasserna men otillgängligt från andra delar av programmet.
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 denna uppgift behöver du först använda konceptet med arv (deriverade klasser), därefter åtkomstmodifierare.
- Vi använder symbolen
:
för att ange basklassen i definitionen av en barnklass (deriverad klass). - Kom ihåg vilken åtkomstmodifierare som är lämplig för fältet
name
för att dölja det från utsidan av klassen men göra det åtkomligt från barnklasserna.
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(); } }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Utmaning: Övning på Modifierare
Svep för att visa menyn
Du har en klass som heter Person
med ett fält för att lagra name
. Dessutom finns det två klasser, Student
och Teacher
, som ärver från Person
.
Det finns vissa fel i programmet på grund av ofullständig kod. Din uppgift är att komplettera koden genom att:
- Göra så att både
Student
ochTeacher
ärver från klassenPerson
; - Säkerställa att fältet
name
är åtkomligt i barnklasserna men otillgängligt från andra delar av programmet.
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 denna uppgift behöver du först använda konceptet med arv (deriverade klasser), därefter åtkomstmodifierare.
- Vi använder symbolen
:
för att ange basklassen i definitionen av en barnklass (deriverad klass). - Kom ihåg vilken åtkomstmodifierare som är lämplig för fältet
name
för att dölja det från utsidan av klassen men göra det åtkomligt från barnklasserna.
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(); } }
Tack för dina kommentarer!