Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Prática de Modificadores | Essenciais de Poo
C# Além do Básico

bookDesafio: Prática de Modificadores

Você recebe uma classe chamada Person com um campo para armazenar o name. Além disso, existem duas classes chamadas Student e Teacher que derivam de Person.

Há alguns erros no programa devido a código incompleto. Sua tarefa é completar o código:

  1. Fazendo com que tanto Student quanto Teacher herdem da classe Person;
  2. Garantindo que o campo name seja acessível nas classes filhas, mas inacessível de qualquer outro lugar.
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. Nesta tarefa, primeiro é necessário utilizar o conceito de classes derivadas e, em seguida, os modificadores de acesso.
  2. Utilizamos o símbolo : para especificar a classe pai na definição de uma classe filha (derivada).
  3. Lembre-se de qual modificador de acesso é apropriado para o campo name para ocultá-lo fora da classe, mas torná-lo acessível nas classes filhas.
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(); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

bookDesafio: Prática de Modificadores

Deslize para mostrar o menu

Você recebe uma classe chamada Person com um campo para armazenar o name. Além disso, existem duas classes chamadas Student e Teacher que derivam de Person.

Há alguns erros no programa devido a código incompleto. Sua tarefa é completar o código:

  1. Fazendo com que tanto Student quanto Teacher herdem da classe Person;
  2. Garantindo que o campo name seja acessível nas classes filhas, mas inacessível de qualquer outro lugar.
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. Nesta tarefa, primeiro é necessário utilizar o conceito de classes derivadas e, em seguida, os modificadores de acesso.
  2. Utilizamos o símbolo : para especificar a classe pai na definição de uma classe filha (derivada).
  3. Lembre-se de qual modificador de acesso é apropriado para o campo name para ocultá-lo fora da classe, mas torná-lo acessível nas classes filhas.
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(); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
some-alt