Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Práctica de Modificadores | Fundamentos Esenciales de POO
C# Más Allá de lo Básico

bookDesafío: Práctica de Modificadores

Se proporciona una clase llamada Person con un campo para almacenar el name. Además, hay dos clases llamadas Student y Teacher que heredan de Person.

El programa contiene algunos errores debido a código incompleto. Su tarea es completar el código realizando lo siguiente:

  1. Hacer que tanto Student como Teacher hereden de la clase Person;
  2. Asegurarse de que el campo name sea accesible en las clases derivadas, pero inaccesible desde cualquier otro 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. En esta tarea primero debe utilizar el concepto de clases derivadas y luego los modificadores de acceso.
  2. Usamos el símbolo : para especificar la clase padre en la definición de una clase hija (derivada).
  3. Recuerde qué modificador de acceso es apropiado para el campo name para ocultarlo fuera de la clase pero permitir el acceso desde las clases derivadas.
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(); } }
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

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

bookDesafío: Práctica de Modificadores

Desliza para mostrar el menú

Se proporciona una clase llamada Person con un campo para almacenar el name. Además, hay dos clases llamadas Student y Teacher que heredan de Person.

El programa contiene algunos errores debido a código incompleto. Su tarea es completar el código realizando lo siguiente:

  1. Hacer que tanto Student como Teacher hereden de la clase Person;
  2. Asegurarse de que el campo name sea accesible en las clases derivadas, pero inaccesible desde cualquier otro 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. En esta tarea primero debe utilizar el concepto de clases derivadas y luego los modificadores de acceso.
  2. Usamos el símbolo : para especificar la clase padre en la definición de una clase hija (derivada).
  3. Recuerde qué modificador de acceso es apropiado para el campo name para ocultarlo fuera de la clase pero permitir el acceso desde las clases derivadas.
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(); } }
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
some-alt