Herausforderung: Modifikatoren-Übung
Gegeben ist eine Klasse namens Person
mit einem Feld zur Speicherung des name
. Zusätzlich gibt es zwei Klassen namens Student
und Teacher
, die von Person
erben.
Im Programm treten Fehler auf, da der Code unvollständig ist. Ihre Aufgabe ist es, den Code zu vervollständigen, indem Sie:
- Sowohl
Student
als auchTeacher
von der KlassePerson
erben lassen; - Sicherstellen, dass das Feld
name
in den abgeleiteten Klassen zugänglich, aber von außerhalb nicht erreichbar ist.
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 dieser Aufgabe müssen Sie zunächst das Konzept der abgeleiteten Klassen und anschließend die Zugriffsmodifizierer verwenden.
- Das Symbol
:
wird verwendet, um die Basisklasse in der Definition einer abgeleiteten Klasse anzugeben. - Erinnern Sie sich daran, welcher Zugriffsmodifizierer für das Feld
name
geeignet ist, um es außerhalb der Klasse zu verbergen, aber in den abgeleiteten Klassen zugänglich zu machen.
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(); } }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Herausforderung: Modifikatoren-Übung
Swipe um das Menü anzuzeigen
Gegeben ist eine Klasse namens Person
mit einem Feld zur Speicherung des name
. Zusätzlich gibt es zwei Klassen namens Student
und Teacher
, die von Person
erben.
Im Programm treten Fehler auf, da der Code unvollständig ist. Ihre Aufgabe ist es, den Code zu vervollständigen, indem Sie:
- Sowohl
Student
als auchTeacher
von der KlassePerson
erben lassen; - Sicherstellen, dass das Feld
name
in den abgeleiteten Klassen zugänglich, aber von außerhalb nicht erreichbar ist.
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 dieser Aufgabe müssen Sie zunächst das Konzept der abgeleiteten Klassen und anschließend die Zugriffsmodifizierer verwenden.
- Das Symbol
:
wird verwendet, um die Basisklasse in der Definition einer abgeleiteten Klasse anzugeben. - Erinnern Sie sich daran, welcher Zugriffsmodifizierer für das Feld
name
geeignet ist, um es außerhalb der Klasse zu verbergen, aber in den abgeleiteten Klassen zugänglich zu machen.
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(); } }
Danke für Ihr Feedback!