Виклик: Практика з Модифікаторами
Вам надано клас з назвою Person
з полем для зберігання name
. Додатково є два класи — Student
та Teacher
, які наслідують Person
.
У програмі є помилки через неповний код. Ваше завдання — завершити код, виконавши наступне:
- Зробити так, щоб і
Student
, іTeacher
наслідували класPerson
; - Забезпечити, щоб поле
name
було доступне у дочірніх класах, але недоступне ззовні.
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(); } }
- У цьому завданні спочатку потрібно використати концепцію похідних класів, а потім — модифікатори доступу.
- Для вказання батьківського класу у визначенні дочірнього (похідного) класу використовується символ
:
. - Згадайте, який модифікатор доступу підходить для поля
name
, щоб приховати його від зовнішнього доступу, але зробити доступним у дочірніх класах.
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(); } }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Виклик: Практика з Модифікаторами
Свайпніть щоб показати меню
Вам надано клас з назвою Person
з полем для зберігання name
. Додатково є два класи — Student
та Teacher
, які наслідують Person
.
У програмі є помилки через неповний код. Ваше завдання — завершити код, виконавши наступне:
- Зробити так, щоб і
Student
, іTeacher
наслідували класPerson
; - Забезпечити, щоб поле
name
було доступне у дочірніх класах, але недоступне ззовні.
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(); } }
- У цьому завданні спочатку потрібно використати концепцію похідних класів, а потім — модифікатори доступу.
- Для вказання батьківського класу у визначенні дочірнього (похідного) класу використовується символ
:
. - Згадайте, який модифікатор доступу підходить для поля
name
, щоб приховати його від зовнішнього доступу, але зробити доступним у дочірніх класах.
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(); } }
Дякуємо за ваш відгук!