Classi Derivate
Quando si afferma che una classe è derivata da un'altra classe, significa che possiede tutti i campi e i metodi della classe genitore e, in aggiunta, la classe derivata può contenere ulteriori campi e metodi.

Una classe derivata (chiamata anche classe figlia) è una classe che eredita le proprietà di un'altra classe; al contrario, una classe base (chiamata anche classe genitore) è una classe dalla quale si eredita.
La sintassi per creare una classe derivata è la seguente:
index.cs
1234567891011// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }
Ecco un esempio con del codice concreto:
index.cs
12345678910111213141516171819202122232425262728293031323334353637using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }
In questo esempio, Dog
è la classe derivata, che eredita dalla classe base Animal
. La classe Dog
ha accesso alla proprietà Name
e al metodo Eat
dalla classe Animal
. Inoltre, introduce un nuovo metodo, Bark
, che è specifico della classe Dog
.
Come illustrato nel diagramma, possono esserci casi in cui una classe eredita da una classe che è già una classe di un'altra:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }
In tal caso, la classe al livello più alto è chiamata Super Classe. In questo caso Animal
è la super classe. Un caso in cui ci sono più livelli di ereditarietà è chiamato Ereditarietà Multi-Livello.
In alcuni linguaggi è consentito a una classe di ereditare da più classi base; tale ereditarietà è chiamata Ereditarietà Multipla. In C#, una classe può avere solo una classe genitore, quindi l'Ereditarietà Multipla non è possibile in C#.
1. In C#, quale parola chiave o simbolo viene utilizzato per dichiarare una classe derivata?
2. Nell'ereditarietà multilivello, come viene chiamata la classe in cima?
3. L'ereditarietà multilivello è possibile in C#?
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 explain more about multi-level inheritance with an example?
What are the benefits of using inheritance in programming?
Are there any limitations or drawbacks to using inheritance?
Awesome!
Completion rate improved to 2.04
Classi Derivate
Scorri per mostrare il menu
Quando si afferma che una classe è derivata da un'altra classe, significa che possiede tutti i campi e i metodi della classe genitore e, in aggiunta, la classe derivata può contenere ulteriori campi e metodi.

Una classe derivata (chiamata anche classe figlia) è una classe che eredita le proprietà di un'altra classe; al contrario, una classe base (chiamata anche classe genitore) è una classe dalla quale si eredita.
La sintassi per creare una classe derivata è la seguente:
index.cs
1234567891011// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }
Ecco un esempio con del codice concreto:
index.cs
12345678910111213141516171819202122232425262728293031323334353637using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }
In questo esempio, Dog
è la classe derivata, che eredita dalla classe base Animal
. La classe Dog
ha accesso alla proprietà Name
e al metodo Eat
dalla classe Animal
. Inoltre, introduce un nuovo metodo, Bark
, che è specifico della classe Dog
.
Come illustrato nel diagramma, possono esserci casi in cui una classe eredita da una classe che è già una classe di un'altra:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }
In tal caso, la classe al livello più alto è chiamata Super Classe. In questo caso Animal
è la super classe. Un caso in cui ci sono più livelli di ereditarietà è chiamato Ereditarietà Multi-Livello.
In alcuni linguaggi è consentito a una classe di ereditare da più classi base; tale ereditarietà è chiamata Ereditarietà Multipla. In C#, una classe può avere solo una classe genitore, quindi l'Ereditarietà Multipla non è possibile in C#.
1. In C#, quale parola chiave o simbolo viene utilizzato per dichiarare una classe derivata?
2. Nell'ereditarietà multilivello, come viene chiamata la classe in cima?
3. L'ereditarietà multilivello è possibile in C#?
Grazie per i tuoi commenti!