Abstraktionsü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
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768using 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(); } }
- Das Schlüsselwort
abstract
vor die Klassendefinition vonAnimal
setzen, um die Klasse abstrakt zu machen. - Das Schlüsselwort
abstract
vor den Rückgabewert der MethodemakeSound
in der KlasseAnimal
setzen, um die Methode abstrakt zu machen. Entfernen Sie dabei den Methodenrumpf aus der KlasseAnimal
, sodass nur noch die Methodensignatur (Rückgabetyp, Name und Argumente) übrig bleibt:returnType methodName(arg1, arg2, ..);
index.cs
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465using 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(); } }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Abstraktionsü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
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768using 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(); } }
- Das Schlüsselwort
abstract
vor die Klassendefinition vonAnimal
setzen, um die Klasse abstrakt zu machen. - Das Schlüsselwort
abstract
vor den Rückgabewert der MethodemakeSound
in der KlasseAnimal
setzen, um die Methode abstrakt zu machen. Entfernen Sie dabei den Methodenrumpf aus der KlasseAnimal
, sodass nur noch die Methodensignatur (Rückgabetyp, Name und Argumente) übrig bleibt:returnType methodName(arg1, arg2, ..);
index.cs
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465using 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(); } }
Danke für Ihr Feedback!