Resumo : neste tutorial, você aprenderá sobre a herança C# que permite que uma classe reutilize as propriedades e métodos de outra classe.
Introdução à herança C#
Herança é um dos conceitos centrais da programação orientada a objetos. A herança permite que uma classe herde de outra classe.
Herdar de uma classe permite reutilizar a funcionalidade da classe em vez de construí-la do zero.
C# permite que uma classe herde apenas de uma única classe. Isso é chamado de herança única. C# não oferece suporte a múltiplas heranças onde uma classe pode herdar de duas ou mais classes.
Suponha que você tenha uma Person
classe com propriedades ,,, FirstName
e e um método :LastName
Age
FullName
Introduce()
// Person.cs
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public byte Age { get; set; }
public string FullName => $"{FirstName} {LastName}";
public string Introduce() => $"Hi, I'm {FullName}.";
}
Linguagem de código: C# ( cs )
E você deseja definir uma Employee
classe que tenha todas as propriedades da Person
classe e mais duas propriedades JobTitle
e Salary
.
Em vez de copiar o código de Employee
classe para Employee
classe, você pode usar herança. O seguinte define a Employee
classe que herda da Person
classe:
// Employee.cs
class Employee: Person
{
}
Linguagem de código: C# ( cs )
Neste exemplo:
- A
Person
classe é chamada de classe pai , classe base ou superclasse - A
Employee
classe é chamada de classe filha , classe derivada ou subclasse .
Dizemos também que a Employee
aula estende a Person
aula.
Como a Employee
classe herda as propriedades e métodos da Person
classe, seus objetos se comportam como objetos da Person
classe. Por exemplo:
// Program.cs
var employee = new Employee
{
FirstName = "John",
LastName = "Doe",
Age = 25
};
Console.WriteLine(employee.Introduce());
Linguagem de código: C# ( cs )
Saída:
Hi, I'm John Doe.
Linguagem de código: C# ( cs )
Como você pode ver, o Employee
se comporta como a Person
classe sem duplicar o código. Dizemos que um funcionário é uma pessoa. E a herança modela um relacionamento é-um .
Estendendo uma classe pai
O seguinte adiciona as propriedades JobTitle
e Salary
à Employee
classe:
// Employee.cs
class Employee : Person
{
public string JobTitle { get; set; }
public decimal Salary { get; set; }
}
Linguagem de código: C# ( cs )
Agora, a Employee
classe tem suas próprias propriedades e as propriedades herdadas da Person
classe. O seguinte cria uma nova instância da Employee
classe com todas as propriedades:
// Program.cs
var employee = new Employee
{
FirstName = "John",
LastName = "Doe",
Age = 25,
JobTitle = "C# Developer",
Salary = 120000
};
Console.WriteLine(employee.Introduce());
Linguagem de código: C# ( cs )
Saída:
Hi, I'm John Doe.
Linguagem de código: C# ( cs )
Resumo
- A herança permite que uma classe (subclasse) herde de outra classe (classe base) para estender ou personalizar a classe base.
- C# permite que uma classe herde de uma única classe. Isso é chamado de herança única.