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
StudentochTeacherä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
namefö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(); } }
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 4. Kapitel 4
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
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
StudentochTeacherä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
namefö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(); } }
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 4. Kapitel 4