59 lines
1.9 KiB
Markdown
59 lines
1.9 KiB
Markdown
|
---
|
|||
|
title: Inheritance
|
|||
|
localeTitle: Herança
|
|||
|
---
|
|||
|
# Herança
|
|||
|
|
|||
|
A herança permite criar uma classe que estenda ou modifique uma classe existente. Isso pode ser usado para criar classes que derivam de outras classes.
|
|||
|
|
|||
|
# Classe base e classe derivada
|
|||
|
|
|||
|
Estes são os termos usados para as classes quando se referem à herança. A classe derivada herda a classe base, junto com quaisquer variáveis, funções ou processos que a classe base usa. A classe derivada pode então ter suas próprias variáveis e funções juntamente com as que ela herda da classe base.
|
|||
|
|
|||
|
Por exemplo, uma classe Base de 'Animal' pode ter uma classe derivada de 'Dog'. A classe Animal conterá características relacionadas aos animais em geral, enquanto a classe Dog contém características exclusivas dos cães. Quando a classe Dog herda a classe Animal, ela poderá se referir a ambos os recursos relacionados a animais e características exclusivas dos cães.
|
|||
|
|
|||
|
# Regras de herança
|
|||
|
|
|||
|
A herança é um caminho. A classe base não herda os recursos da classe derivada.
|
|||
|
|
|||
|
A herança é transitiva. Uma classe base de 'Animal' pode ter uma classe derivada de 'Dog' e isso pode ter uma classe derivada de 'Terrier'. A classe Terrier herdará os recursos da classe Dog e da classe Animal.
|
|||
|
|
|||
|
# O `:` símbolo
|
|||
|
|
|||
|
Em C #, o símbolo `:` é usado para denotar herança. Isso é chamado ao criar a classe derivada.
|
|||
|
|
|||
|
## Exemplo
|
|||
|
|
|||
|
# Classe base
|
|||
|
```
|
|||
|
public class Animal
|
|||
|
{
|
|||
|
public int ID;
|
|||
|
public string title;
|
|||
|
public enum phylum;
|
|||
|
public enum dietType;
|
|||
|
|
|||
|
public DefineAnimal(int id, string name, enum phy, enum diet)
|
|||
|
{
|
|||
|
this.ID = id;
|
|||
|
this.title = name;
|
|||
|
this.phylum = phy;
|
|||
|
this.dietType = diet;
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
# Classe derivada
|
|||
|
```
|
|||
|
public class Dog : Animal
|
|||
|
{
|
|||
|
public enum breed;
|
|||
|
public int levelOfTraining;
|
|||
|
|
|||
|
public void SayWoof()
|
|||
|
{
|
|||
|
Console.WriteLine("Woof");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
```
|