Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Classi Derivate | Fondamenti Di OOP
C# Oltre le Basi

bookClassi 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.

Note
Nota

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

index.cs

copy
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

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using 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

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using 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.

Note
Nota

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#?

question mark

In C#, quale parola chiave o simbolo viene utilizzato per dichiarare una classe derivata?

Select the correct answer

question mark

Nell'ereditarietà multilivello, come viene chiamata la classe in cima?

Select the correct answer

question mark

L'ereditarietà multilivello è possibile in C#?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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

bookClassi 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.

Note
Nota

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

index.cs

copy
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

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using 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

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using 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.

Note
Nota

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#?

question mark

In C#, quale parola chiave o simbolo viene utilizzato per dichiarare una classe derivata?

Select the correct answer

question mark

Nell'ereditarietà multilivello, come viene chiamata la classe in cima?

Select the correct answer

question mark

L'ereditarietà multilivello è possibile in C#?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 1
some-alt