Orientação a Objetos - Herança

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

assinaturaAssine nossa Comunidade

POO - Herança

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();
              }
  
            }
    
       
    

Orientação a Objetos - Herança

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

Próximas Aulas:
assinaturaAssine nossa Comunidade

POO - Herança

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();
              }
  
            }