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

bookAbstraktionsübung

In dieser Aufgabe erhalten Sie einen Code, mit dem Sie möglicherweise bereits vertraut sind, da Sie in mehreren vorherigen Kapiteln ähnlichen Code betrachtet haben. Er enthält eine überschriebene Methode namens MakeSound.

Ihre Aufgabe besteht darin, die Klasse Animal in eine abstrakte Klasse umzuwandeln und die Methode MakeSound in eine abstract-Methode zu ändern.

Nach dieser Änderung sollte sich die Ausgabe des Programms nicht verändern.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
using System; class Animal { protected string species; public Animal(string species) { this.species = species; } public virtual void MakeSound() { // Empty Method } public void DisplaySpecies() { Console.WriteLine($"Species: {species}"); } } class Cat : Animal { string furPattern; public Cat(string species, string furPattern) : base(species) { this.furPattern = furPattern; } public override void MakeSound() { Console.WriteLine("Meow! Meow!"); } } class Dog : Animal { float weight; public Dog(string species, float weight) : base(species) { this.weight = weight; } public override void MakeSound() { Console.WriteLine("Woof! Woof!"); } } class ConsoleApp { static void Main() { Animal myCat = new Cat("Feline", "Ginger & White"); Animal myDog = new Dog("Canine", 42.5f); myCat.DisplaySpecies(); myCat.MakeSound(); Console.WriteLine("\n"); myDog.DisplaySpecies(); myDog.MakeSound(); } }
  1. Das Schlüsselwort abstract vor die Klassendefinition von Animal setzen, um die Klasse abstrakt zu machen.
  2. Das Schlüsselwort abstract vor den Rückgabewert der Methode makeSound in der Klasse Animal setzen, um die Methode abstrakt zu machen. Entfernen Sie dabei den Methodenrumpf aus der Klasse Animal, sodass nur noch die Methodensignatur (Rückgabetyp, Name und Argumente) übrig bleibt: returnType methodName(arg1, arg2, ..);
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
using System; abstract class Animal { protected string species; public Animal(string species) { this.species = species; } public abstract void MakeSound(); public void DisplaySpecies() { Console.WriteLine($"Species: {species}"); } } class Cat : Animal { string furPattern; public Cat(string species, string furPattern) : base(species) { this.furPattern = furPattern; } public override void MakeSound() { Console.WriteLine("Meow! Meow!"); } } class Dog : Animal { float weight; public Dog(string species, float weight) : base(species) { this.weight = weight; } public override void MakeSound() { Console.WriteLine("Woof! Woof!"); } } class ConsoleApp { static void Main() { Animal myCat = new Cat("Feline", "Ginger & White"); Animal myDog = new Dog("Canine", 42.5f); myCat.DisplaySpecies(); myCat.MakeSound(); Console.WriteLine("\n"); myDog.DisplaySpecies(); myDog.MakeSound(); } }
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 9

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:

Can you show me an example of how the abstract class and method should look?

What is the purpose of making the class and method abstract in this context?

Can you explain what changes, if any, need to be made to the subclasses?

Awesome!

Completion rate improved to 2.04

bookAbstraktionsübung

Swipe um das Menü anzuzeigen

In dieser Aufgabe erhalten Sie einen Code, mit dem Sie möglicherweise bereits vertraut sind, da Sie in mehreren vorherigen Kapiteln ähnlichen Code betrachtet haben. Er enthält eine überschriebene Methode namens MakeSound.

Ihre Aufgabe besteht darin, die Klasse Animal in eine abstrakte Klasse umzuwandeln und die Methode MakeSound in eine abstract-Methode zu ändern.

Nach dieser Änderung sollte sich die Ausgabe des Programms nicht verändern.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
using System; class Animal { protected string species; public Animal(string species) { this.species = species; } public virtual void MakeSound() { // Empty Method } public void DisplaySpecies() { Console.WriteLine($"Species: {species}"); } } class Cat : Animal { string furPattern; public Cat(string species, string furPattern) : base(species) { this.furPattern = furPattern; } public override void MakeSound() { Console.WriteLine("Meow! Meow!"); } } class Dog : Animal { float weight; public Dog(string species, float weight) : base(species) { this.weight = weight; } public override void MakeSound() { Console.WriteLine("Woof! Woof!"); } } class ConsoleApp { static void Main() { Animal myCat = new Cat("Feline", "Ginger & White"); Animal myDog = new Dog("Canine", 42.5f); myCat.DisplaySpecies(); myCat.MakeSound(); Console.WriteLine("\n"); myDog.DisplaySpecies(); myDog.MakeSound(); } }
  1. Das Schlüsselwort abstract vor die Klassendefinition von Animal setzen, um die Klasse abstrakt zu machen.
  2. Das Schlüsselwort abstract vor den Rückgabewert der Methode makeSound in der Klasse Animal setzen, um die Methode abstrakt zu machen. Entfernen Sie dabei den Methodenrumpf aus der Klasse Animal, sodass nur noch die Methodensignatur (Rückgabetyp, Name und Argumente) übrig bleibt: returnType methodName(arg1, arg2, ..);
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
using System; abstract class Animal { protected string species; public Animal(string species) { this.species = species; } public abstract void MakeSound(); public void DisplaySpecies() { Console.WriteLine($"Species: {species}"); } } class Cat : Animal { string furPattern; public Cat(string species, string furPattern) : base(species) { this.furPattern = furPattern; } public override void MakeSound() { Console.WriteLine("Meow! Meow!"); } } class Dog : Animal { float weight; public Dog(string species, float weight) : base(species) { this.weight = weight; } public override void MakeSound() { Console.WriteLine("Woof! Woof!"); } } class ConsoleApp { static void Main() { Animal myCat = new Cat("Feline", "Ginger & White"); Animal myDog = new Dog("Canine", 42.5f); myCat.DisplaySpecies(); myCat.MakeSound(); Console.WriteLine("\n"); myDog.DisplaySpecies(); myDog.MakeSound(); } }
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 9
some-alt