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
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!