Esercitazione sull'Astrazione
In questo esercizio viene fornito un codice che potrebbe risultare già familiare, poiché è stato analizzato un codice simile in diversi capitoli precedenti. Il codice contiene un metodo sovrascritto chiamato MakeSound
.
L'obiettivo è convertire la classe Animal
in una classe astratta e il metodo MakeSound
in un metodo abstract
.
Non deve esserci alcuna variazione nell'output del programma dopo questa modifica.
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(); } }
- Aggiungere la parola chiave
abstract
prima della definizione della classeAnimal
per renderla astratta. - Aggiungere la parola chiave
abstract
prima del tipo di ritorno del metodomakeSound
nella classeAnimal
per rendere il metodo astratto. Assicurarsi di rimuovere il corpo del metodo dalla classeAnimal
, lasciando solo la sua dichiarazione (tipo di ritorno, nome e argomenti):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(); } }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Esercitazione sull'Astrazione
Scorri per mostrare il menu
In questo esercizio viene fornito un codice che potrebbe risultare già familiare, poiché è stato analizzato un codice simile in diversi capitoli precedenti. Il codice contiene un metodo sovrascritto chiamato MakeSound
.
L'obiettivo è convertire la classe Animal
in una classe astratta e il metodo MakeSound
in un metodo abstract
.
Non deve esserci alcuna variazione nell'output del programma dopo questa modifica.
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(); } }
- Aggiungere la parola chiave
abstract
prima della definizione della classeAnimal
per renderla astratta. - Aggiungere la parola chiave
abstract
prima del tipo di ritorno del metodomakeSound
nella classeAnimal
per rendere il metodo astratto. Assicurarsi di rimuovere il corpo del metodo dalla classeAnimal
, lasciando solo la sua dichiarazione (tipo di ritorno, nome e argomenti):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(); } }
Grazie per i tuoi commenti!