Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Виклик: Практика з Модифікаторами | Основи ООП
C# Понад Базовий Рівень

bookВиклик: Практика з Модифікаторами

Вам надано клас з назвою Person з полем для зберігання name. Додатково є два класи — Student та Teacher, які наслідують Person.

У програмі є помилки через неповний код. Ваше завдання — завершити код, виконавши наступне:

  1. Зробити так, щоб і Student, і Teacher наслідували клас Person;
  2. Забезпечити, щоб поле name було доступне у дочірніх класах, але недоступне ззовні.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using 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(); } }
  1. У цьому завданні спочатку потрібно використати концепцію похідних класів, а потім — модифікатори доступу.
  2. Для вказання батьківського класу у визначенні дочірнього (похідного) класу використовується символ :.
  3. Згадайте, який модифікатор доступу підходить для поля name, щоб приховати його від зовнішнього доступу, але зробити доступним у дочірніх класах.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using 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(); } }
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

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

bookВиклик: Практика з Модифікаторами

Свайпніть щоб показати меню

Вам надано клас з назвою Person з полем для зберігання name. Додатково є два класи — Student та Teacher, які наслідують Person.

У програмі є помилки через неповний код. Ваше завдання — завершити код, виконавши наступне:

  1. Зробити так, щоб і Student, і Teacher наслідували клас Person;
  2. Забезпечити, щоб поле name було доступне у дочірніх класах, але недоступне ззовні.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using 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(); } }
  1. У цьому завданні спочатку потрібно використати концепцію похідних класів, а потім — модифікатори доступу.
  2. Для вказання батьківського класу у визначенні дочірнього (похідного) класу використовується символ :.
  3. Згадайте, який модифікатор доступу підходить для поля name, щоб приховати його від зовнішнього доступу, але зробити доступним у дочірніх класах.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using 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(); } }
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
some-alt