Desafí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:
- Hacer que tanto
Student
comoTeacher
hereden de la clasePerson
; - Asegurarse de que el campo
name
sea accesible en las clases derivadas, pero inaccesible desde cualquier otro lugar.
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(); } }
- En esta tarea primero debe utilizar el concepto de clases derivadas y luego los modificadores de acceso.
- Usamos el símbolo
:
para especificar la clase padre en la definición de una clase hija (derivada). - 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
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(); } }
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Desafí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:
- Hacer que tanto
Student
comoTeacher
hereden de la clasePerson
; - Asegurarse de que el campo
name
sea accesible en las clases derivadas, pero inaccesible desde cualquier otro lugar.
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(); } }
- En esta tarea primero debe utilizar el concepto de clases derivadas y luego los modificadores de acceso.
- Usamos el símbolo
:
para especificar la clase padre en la definición de una clase hija (derivada). - 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
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(); } }
¡Gracias por tus comentarios!