Haaste: Modifikaattoreiden Harjoittelu
Sinulle on annettu luokka nimeltä Person
, jossa on kenttä name
-tietojen tallentamiseen. Lisäksi on kaksi luokkaa, Student
ja Teacher
, jotka perivät Person
-luokan.
Ohjelmassa on joitakin virheitä puutteellisen koodin vuoksi. Tehtävänäsi on täydentää koodi seuraavasti:
- Tee sekä
Student
- ettäTeacher
-luokistaPerson
-luokan aliluokkia; - Varmista, että
name
-kenttä on käytettävissä aliluokissa, mutta ei muualla.
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(); } }
- Tässä tehtävässä sinun tulee ensin käyttää perittyjen luokkien käsitettä ja sen jälkeen näkyvyysmuokkaimia.
- Käytämme
:
-symbolia määrittämään yliluokan lapsiluokan määrittelyssä. - Muista, mikä näkyvyysmuokkain sopii
name
-kentälle, jotta se ei ole näkyvissä luokan ulkopuolelta, mutta on käytettävissä aliluokissa.
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(); } }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Haaste: Modifikaattoreiden Harjoittelu
Pyyhkäise näyttääksesi valikon
Sinulle on annettu luokka nimeltä Person
, jossa on kenttä name
-tietojen tallentamiseen. Lisäksi on kaksi luokkaa, Student
ja Teacher
, jotka perivät Person
-luokan.
Ohjelmassa on joitakin virheitä puutteellisen koodin vuoksi. Tehtävänäsi on täydentää koodi seuraavasti:
- Tee sekä
Student
- ettäTeacher
-luokistaPerson
-luokan aliluokkia; - Varmista, että
name
-kenttä on käytettävissä aliluokissa, mutta ei muualla.
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(); } }
- Tässä tehtävässä sinun tulee ensin käyttää perittyjen luokkien käsitettä ja sen jälkeen näkyvyysmuokkaimia.
- Käytämme
:
-symbolia määrittämään yliluokan lapsiluokan määrittelyssä. - Muista, mikä näkyvyysmuokkain sopii
name
-kentälle, jotta se ei ole näkyvissä luokan ulkopuolelta, mutta on käytettävissä aliluokissa.
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(); } }
Kiitos palautteestasi!