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
abstractvor die Klassendefinition vonAnimalsetzen, um die Klasse abstrakt zu machen. - Das Schlüsselwort
abstractvor den Rückgabewert der MethodemakeSoundin der KlasseAnimalsetzen, 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
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
abstractvor die Klassendefinition vonAnimalsetzen, um die Klasse abstrakt zu machen. - Das Schlüsselwort
abstractvor den Rückgabewert der MethodemakeSoundin der KlasseAnimalsetzen, 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!