Classes Derivadas
Quando se diz que uma classe é derivada de outra classe, significa que ela possui todos os campos e métodos da classe pai e, além disso, a classe derivada pode conter campos e métodos adicionais.
Uma classe derivada (também chamada de classe filha) é uma classe que herda as propriedades de outra classe, enquanto, por outro lado, uma classe base (também chamada de classe pai) é uma classe da qual se herda.
A sintaxe para criar uma classe herdada é a seguinte:
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 }
Veja um exemplo com código 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(); } }
Neste exemplo, Dog é a classe derivada, herdando da classe base Animal. A classe Dog tem acesso à propriedade Name e ao método Eat da classe Animal. Além disso, ela introduz um novo método, Bark, que é específico da classe Dog.
Conforme ilustrado no diagrama, podem existir casos em que uma classe herda de uma classe que já é derivada de outra:
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(); } }
Nesse caso, a classe no nível mais alto é chamada de Superclasse. Neste exemplo, Animal é a superclasse. Uma situação em que há múltiplos níveis de herança é chamada de Herança Multinível.
Em algumas linguagens, é permitido que uma classe herde de várias classes base; tal herança é chamada de Herança Múltipla. Em C#, uma classe pode ter apenas uma classe pai, portanto, Herança Múltipla não é possível em C#.
1. Em C#, qual palavra-chave ou símbolo é utilizado para declarar uma classe derivada?
2. Na herança multinível, como é chamada a classe no topo?
3. A herança multinível é possível em C#?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Classes Derivadas
Deslize para mostrar o menu
Quando se diz que uma classe é derivada de outra classe, significa que ela possui todos os campos e métodos da classe pai e, além disso, a classe derivada pode conter campos e métodos adicionais.
Uma classe derivada (também chamada de classe filha) é uma classe que herda as propriedades de outra classe, enquanto, por outro lado, uma classe base (também chamada de classe pai) é uma classe da qual se herda.
A sintaxe para criar uma classe herdada é a seguinte:
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 }
Veja um exemplo com código 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(); } }
Neste exemplo, Dog é a classe derivada, herdando da classe base Animal. A classe Dog tem acesso à propriedade Name e ao método Eat da classe Animal. Além disso, ela introduz um novo método, Bark, que é específico da classe Dog.
Conforme ilustrado no diagrama, podem existir casos em que uma classe herda de uma classe que já é derivada de outra:
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(); } }
Nesse caso, a classe no nível mais alto é chamada de Superclasse. Neste exemplo, Animal é a superclasse. Uma situação em que há múltiplos níveis de herança é chamada de Herança Multinível.
Em algumas linguagens, é permitido que uma classe herde de várias classes base; tal herança é chamada de Herança Múltipla. Em C#, uma classe pode ter apenas uma classe pai, portanto, Herança Múltipla não é possível em C#.
1. Em C#, qual palavra-chave ou símbolo é utilizado para declarar uma classe derivada?
2. Na herança multinível, como é chamada a classe no topo?
3. A herança multinível é possível em C#?
Obrigado pelo seu feedback!