Herança é um conceito fundamental da programação orientada a objetos, que permite tornar o código eficiente e reutilizável. Neste guia, você aprenderá não apenas o que significa herança, mas também como implementá-la na prática. O foco estará na criação de uma classe base e das subclasses correspondentes em C#. Vamos mergulhar diretamente nos passos.
Principais conclusões
- A herança permite a reutilização do código, fazendo com que as subclasses herdem propriedades e métodos de uma classe base.
- Modificadores de acesso como “private” e “protected” controlam quais classes podem acessar quais propriedades.
- A definição e implementação de construtores é essencial para subclasses.
- Subclasses podem sobrescrever ou complementar métodos da classe base e adaptá-los às suas propriedades específicas.
Guia passo a passo
A criação da classe base
Para começar com a herança, crie primeiro a classe base Carro. Você pode fazer isso criando uma nova classe em seu projeto e nomeando-a de Carro. Esta classe conterá as características comuns que se aplicam tanto a carros de passeio quanto a caminhões.

Nesta classe base, vamos definir propriedades que se aplicam a todos os veículos. Isso inclui, por exemplo, o modelo, a capacidade do tanque, o consumo e os custos de viagem. Além disso, definimos a classe como abstrata, para que nenhum objeto dessa classe possa ser instanciado.
Definição de propriedades e construtores
Agora é hora de definir propriedades específicas na classe Carro. Usamos protected como modificador de acesso, para que as subclasses possam acessá-las.
Além disso, você deve agora criar um construtor para a classe base que inicializa as propriedades mencionadas acima. Isso permite que você crie novos objetos das subclasses Carro de Passeio e Caminhão, com base nesses elementos comuns.
Criando subclasses
Após a definição da classe base Carro, você pode agora criar as subclasses Carro de Passeio e Caminhão. Essas subclasses herdam as propriedades de Carro e podem adicionar características específicas. Para criar Carro de Passeio, você cria uma nova classe e indica que ela herda de Carro.

Propriedades adicionais na subclasse Carro de Passeio
Na classe Carro de Passeio, você pode agora definir mais atributos específicos. Por exemplo, Carros de Passeio necessitam de um adesivo que é necessário para viagens em autoestradas.
Agora você precisa de um construtor que inicializa tanto os valores para a classe base quanto para os atributos específicos da subclasse.
Implementação de métodos específicos
Após a criação da subclasse, você adicionará métodos específicos como o para calcular os custos de viagem. Você pode sobrecarregar esse método para executar tanto o cálculo básico da classe base quanto cálculos adicionais baseados nos atributos específicos da subclasse.
Uso das classes criadas
Após a implementação das classes, você finalmente precisará instanciar objetos dessas subclasses. Assim, você poderá testar as funcionalidades que implementou.
Resumo - Entendendo os fundamentos da herança em C# na programação
A herança é um conceito chave na programação orientada a objetos, que permite estruturar o código de forma eficiente e minimizar o esforço de manutenção. Ao criar classes base e subclasses, você pode definir uma hierarquia clara e propriedades específicas, além de métodos para diferentes tipos de veículos. Você aprendeu como definir propriedades e métodos em uma classe base e como as subclasses podem herdar esses elementos ou expandir sua funcionalidade.
Perguntas frequentes
Quais são as vantagens da herança na programação orientada a objetos?A herança permite a reutilização do código, facilita a manutenção e cria uma hierarquia clara.
O que é uma classe abstrata?Uma classe abstrata é uma classe que não pode ser instanciada e frequentemente serve como uma classe base para outras classes.
Como defino um modificador de acesso?Um modificador de acesso é especificado na definição da classe antes das propriedades ou métodos, por exemplo, public, private ou protected.
Como posso ajustar métodos em subclasses?Ao sobrescrever métodos em subclasses, você pode adaptar ou expandir sua funcionalidade.
Como crio construtores para minhas subclasses?Você pode definir construtores em subclasses que chamam o construtor da classe base e inicializam as propriedades específicas da subclasse.