Herança: reutilizando código
Reutilize e amplie código existente usando herança em C#
Herança: reutilizando código é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 6 de 7. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 7 aulas no total.
Introdução à herança
Herança: reutilizando código
Boas-vindas à próxima lição! Nesta lição, você aprenderá sobre herança, um dos princípios fundamentais da Programação Orientada a Objetos, e como ela permite reutilizar código e criar hierarquias. Vamos começar!

O que é herança?
O que é herança?
A herança permite que uma classe (a classe filha ou classe derivada) adquira os atributos e métodos de outra classe (a classe pai ou classe base). Ela permite reutilizar código e estabelecer relações hierárquicas entre classes.
Exemplo: Uma classe "Car" poderia servir como classe base para as classes "ElectricCar" e "SportsCar", compartilhando propriedades comuns como "Color" e "Speed".
Definindo uma classe base
Definindo uma classe base
Uma classe base contém propriedades e métodos comuns que podem ser herdados por classes derivadas. Exemplo:
Ponto principal: Defina o código reutilizável na classe base.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
Criando uma classe derivada
Criando uma classe derivada
Uma classe derivada herda as propriedades e os métodos de uma classe base. Use o símbolo : para indicar a herança. Exemplo:
Ponto principal: As classes derivadas podem adicionar novos recursos ou substituir a funcionalidade da classe base.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Car : Vehicle {
public int NumberOfDoors;
public void ShowDetails() {
Console.WriteLine("Color: " + Color);
Console.WriteLine("Doors: " + NumberOfDoors);
}
}
class Program {
static void Main() {
Car myCar = new Car();
myCar.Color = "Red"; // Inherited from Vehicle
myCar.NumberOfDoors = 4;
myCar.Drive(); // Inherited from Vehicle
myCar.ShowDetails();
}
}
Substituindo métodos
Substituindo métodos
As classes derivadas podem substituir métodos da classe base para fornecer um comportamento especializado. Use a palavra-chave virtual na classe base e a palavra-chave override na classe derivada. Exemplo:
Dica: A substituição é útil para personalizar o comportamento em classes derivadas.
using System;
class Vehicle {
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class SportsCar : Vehicle {
public override void Drive() {
Console.WriteLine("The sports car is driving fast!");
}
}
class Program {
static void Main() {
SportsCar myCar = new SportsCar();
myCar.Drive(); // Calls the overridden method
}
}
Palavra-chave base
Palavra-chave base
A palavra-chave base é usada para acessar membros da classe base a partir de uma classe derivada. Exemplo:
Dica: Use base para estender ou complementar o comportamento da classe base.
using System;
class Vehicle {
public string Color;
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Truck : Vehicle {
public override void Drive() {
base.Drive(); // Calls the base class method
Console.WriteLine("The truck is carrying a heavy load.");
}
}
class Program {
static void Main() {
Truck myTruck = new Truck();
myTruck.Color = "Blue";
myTruck.Drive();
}
}
Desafio prático
Desafio prático
Crie uma classe base chamada Animal com um método Speak() que imprime "O animal emite um som." Crie classes derivadas Dog e Cat que substituam Speak() para imprimir "O cachorro late." e "O gato mia." Exemplo:
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Cat : Animal {
public override void Speak() {
Console.WriteLine("The cat meows.");
}
}
class Program {
static void Main() {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak();
myCat.Speak();
}
}
Melhores práticas para herança
Melhores práticas para herança
Veja algumas práticas recomendadas:
- Use herança somente quando houver uma relação clara de “é um” (por exemplo, um Car é um Vehicle).
- Mantenha as classes base o mais gerais possível.
- Use
sealedpara impedir novas heranças quando necessário.
Dica: A herança deve simplificar, não complicar, sua base de código.
Muito bem!
Muito bem!
Parabéns! Você aprendeu a usar herança para reutilizar código e criar hierarquias de classes em C#. Na próxima lição, vamos explorar o polimorfismo, outro conceito poderoso da POO. Continue programando!

Perguntas Frequentes
A aula “Herança: reutilizando código” é grátis?
Sim — o texto completo de “Herança: reutilizando código” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 7 aulas no total.
O que vou aprender em “Herança: reutilizando código”?
Reutilize e amplie código existente usando herança em C# Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 6 de 7.
Quanto tempo leva a aula “Herança: reutilizando código”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que é programação orientada a objetos?
- Definindo classes e objetos
- Entendendo propriedades e métodos
- Construtores em C#
- Encapsulamento e modificadores de acesso
- Herança: reutilizando código
- Polimorfismo e sobrescrita de métodos