Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Modifikatoren-Übung | OOP-Grundlagen
C# Jenseits der Grundlagen

bookHerausforderung: Modifikatoren-Übung

Gegeben ist eine Klasse namens Person mit einem Feld zur Speicherung des name. Zusätzlich gibt es zwei Klassen namens Student und Teacher, die von Person erben.

Im Programm treten Fehler auf, da der Code unvollständig ist. Ihre Aufgabe ist es, den Code zu vervollständigen, indem Sie:

  1. Sowohl Student als auch Teacher von der Klasse Person erben lassen;
  2. Sicherstellen, dass das Feld name in den abgeleiteten Klassen zugänglich, aber von außerhalb nicht erreichbar ist.
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. In dieser Aufgabe müssen Sie zunächst das Konzept der abgeleiteten Klassen und anschließend die Zugriffsmodifizierer verwenden.
  2. Das Symbol : wird verwendet, um die Basisklasse in der Definition einer abgeleiteten Klasse anzugeben.
  3. Erinnern Sie sich daran, welcher Zugriffsmodifizierer für das Feld name geeignet ist, um es außerhalb der Klasse zu verbergen, aber in den abgeleiteten Klassen zugänglich zu machen.
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(); } }
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookHerausforderung: Modifikatoren-Übung

Swipe um das Menü anzuzeigen

Gegeben ist eine Klasse namens Person mit einem Feld zur Speicherung des name. Zusätzlich gibt es zwei Klassen namens Student und Teacher, die von Person erben.

Im Programm treten Fehler auf, da der Code unvollständig ist. Ihre Aufgabe ist es, den Code zu vervollständigen, indem Sie:

  1. Sowohl Student als auch Teacher von der Klasse Person erben lassen;
  2. Sicherstellen, dass das Feld name in den abgeleiteten Klassen zugänglich, aber von außerhalb nicht erreichbar ist.
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. In dieser Aufgabe müssen Sie zunächst das Konzept der abgeleiteten Klassen und anschließend die Zugriffsmodifizierer verwenden.
  2. Das Symbol : wird verwendet, um die Basisklasse in der Definition einer abgeleiteten Klasse anzugeben.
  3. Erinnern Sie sich daran, welcher Zugriffsmodifizierer für das Feld name geeignet ist, um es außerhalb der Klasse zu verbergen, aber in den abgeleiteten Klassen zugänglich zu machen.
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(); } }
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
some-alt