Nesta aula iremos aprender como utilizar herança em uma classe, aproveitando assim os seus atributos públicos e os seus métodos públicos
Herança refere-se ao reaproveitamento de código, ou seja, quando criamos uma classe com atributos e métodos públicos ou protegidos, estes podem ser herdados por outras classes.
Abaixo temos a classe Cliente com atributos e métodos públicos.
namespace Classes
{
public class Cliente
{
//atributos públicos
public string Nome;
public string Telefone;
public string CPF;
public Cliente(string nome, string telefone, string cpf)
{
this.Nome = nome;
this.Telefone = telefone;
this.CPF = cpf;
}
public Cliente(){}
//método publico
public void Gravar()
{
if(this.GetType()== typeof(Cliente))
{
var clientes = Cliente.LerClientes();
clientes.Add(this);
if (File.Exists(caminhoBaseClientes()))
{
StreamWriter r = new StreamWriter(caminhoBaseClientes());
r.WriteLine("nome;telefone;cpf");
foreach(Cliente c in clientes)
{
var linha = c.Nome + ";" + c.Telefone + ";" + c.CPF + ";";
r.WriteLine(linha);
}
r.close;
}
}else
{
var usuario = Usuario.LerUsuarios();
usuario.Add(this);
if (File.Exists(caminhoBaseUsuarios()))
{
StreamWriter r = new StreamWriter(caminhoBaseUsuarios());
r.WriteLine("nome;telefone;cpf");
foreach(Usuario u in usuario)
{
var linha = u.Nome + ";" + u.Telefone + ";" + u.CPF + ";";
r.WriteLine(linha);
}
r.close;
}
}
}
}
Vamos criar uma nova classe chamada Usuario que vai herdar da classe de Cliente os métodos publicos automaticamente. Na classe Usuario devemos criar o construtor Usuario.
A sintaxe de herança no C# é utilizar a pontuação - dois pontos(:), Exemplo:
namespace Classes
{
//classe Usuario herda da classe Cliente
public class Usuario : Cliente
{
public Usuario(string nome, string telefone, string cpf)
{
this.Nome = nome;
this.Telefone = telefone;
this.CPF = cpf;
}
public Usuario(){}
}
}
Quando criamos a instância da classe Usuario no programa principal, esta instância herdará todos os atributos e métodos da classe pai Cliente:
namespace console_app
class Program
{
static void Main(string[] args)
{
Usuario u = new Usuario();
u.Nome = "Maria";
u.Telefone = "5298774";
u.CPF = "78765547886";
u.Gravar();
}
}
Nesta aula iremos aprender como utilizar herança em uma classe, aproveitando assim os seus atributos públicos e os seus métodos públicos
Herança refere-se ao reaproveitamento de código, ou seja, quando criamos uma classe com atributos e métodos públicos ou protegidos, estes podem ser herdados por outras classes.
Abaixo temos a classe Cliente com atributos e métodos públicos.
namespace Classes
{
public class Cliente
{
//atributos públicos
public string Nome;
public string Telefone;
public string CPF;
public Cliente(string nome, string telefone, string cpf)
{
this.Nome = nome;
this.Telefone = telefone;
this.CPF = cpf;
}
public Cliente(){}
//método publico
public void Gravar()
{
if(this.GetType()== typeof(Cliente))
{
var clientes = Cliente.LerClientes();
clientes.Add(this);
if (File.Exists(caminhoBaseClientes()))
{
StreamWriter r = new StreamWriter(caminhoBaseClientes());
r.WriteLine("nome;telefone;cpf");
foreach(Cliente c in clientes)
{
var linha = c.Nome + ";" + c.Telefone + ";" + c.CPF + ";";
r.WriteLine(linha);
}
r.close;
}
}else
{
var usuario = Usuario.LerUsuarios();
usuario.Add(this);
if (File.Exists(caminhoBaseUsuarios()))
{
StreamWriter r = new StreamWriter(caminhoBaseUsuarios());
r.WriteLine("nome;telefone;cpf");
foreach(Usuario u in usuario)
{
var linha = u.Nome + ";" + u.Telefone + ";" + u.CPF + ";";
r.WriteLine(linha);
}
r.close;
}
}
}
}
Vamos criar uma nova classe chamada Usuario que vai herdar da classe de Cliente os métodos publicos automaticamente. Na classe Usuario devemos criar o construtor Usuario.
A sintaxe de herança no C# é utilizar a pontuação - dois pontos(:), Exemplo:
namespace Classes
{
//classe Usuario herda da classe Cliente
public class Usuario : Cliente
{
public Usuario(string nome, string telefone, string cpf)
{
this.Nome = nome;
this.Telefone = telefone;
this.CPF = cpf;
}
public Usuario(){}
}
}
Quando criamos a instância da classe Usuario no programa principal, esta instância herdará todos os atributos e métodos da classe pai Cliente:
namespace console_app
class Program
{
static void Main(string[] args)
{
Usuario u = new Usuario();
u.Nome = "Maria";
u.Telefone = "5298774";
u.CPF = "78765547886";
u.Gravar();
}
}