Vous êtes sur la page 1sur 6

Linguagem de Programao II C#.

NET 28/02/14

Herana H vezes em que duas ou mais classes tem atributos e/ou mtodos em comum e tambm suas particularidades. Imagine o caso de uma Pessoa: existem 2 tipos de pessoas fsica e jurdica. Concorda que ambas podem possuir nome, e-mail, endereo..., porm particularmente uma pessoa fsica possui RG e CPF, enquanto uma pessoa jurdica possui CNPJ, Inscrio Estadual, etc. A classe com caractersticas comuns de Pessoa chamamos de classe Pai (Superclasse ou Classe Base) e as particularidades ou especificaes Fsica e Jurdica chamamos de Subclasses ou classes filhas. Desta forma, evitamos repetio de mtodos e atributos que constituem a mesma informao. No C#.Net, para informarmos que a classe subclasse de uma superclasse tal, usamos a seguinte notao:

class PessoaFisica : Pessoa{ ... }

Ex.: //Classe Pessoa


using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace TestandoHeranca { class Pessoa { protected int id; protected string nome; protected string email;

protected string endereco; public int ID { get { return this.id; } set { this.id = value; } } public string Nome { get { return this.nome; } set { this.nome = value; } } public string Email { get { return this.email; } set { this.email = value; } } public string Endereco { get { return this.endereco; } set { this.endereco = value; } } public bool validaNome(string nome) { if (nome.Length < 2) { return false; } else { this.Nome = nome; return true; } } } }
//Classe Pessoa Fsica

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace TestandoHeranca { class PessoaFisica:Pessoa { private string rg;

private string cpf; //Esta uma maneira reduzida de se criar propriedades em C# public string Rg { get; set; } public string Cpf { get; set; } public bool validaCPF() { //Poderamos validar o CPF return true; } } } //Classe Pessoa Jurdica
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace TestandoHeranca { class PessoaJuridica:Pessoa { private string cnpj; public string Cnpj { get; set; } //Poderamos validar o CNPJ public bool validaCNPJ() { return true; } } }

//Classe Program que contm o mtodo Main();

using using using using using

System; System.Collections.Generic; System.Linq; System.Text; System.Threading;

namespace TestandoHeranca { class Program {

static void Main(string[] args) { List<PessoaFisica> pessoasFisicas=new List<PessoaFisica>(); List<PessoaJuridica> pessoasJuridicas=new List<PessoaJuridica>(); int opcao=0, geraID=1; bool resultado; do { Console.Clear(); Console.WriteLine("##### Menu de Opes #####"); Console.WriteLine("1 - Cadastro de Pessoa Fsica"); Console.WriteLine("2 - Cadastro de Pessoa Jurdica"); Console.WriteLine("3 - Relatrio"); Console.WriteLine("0 - Sair"); opcao = Convert.ToInt32(Console.ReadLine()); switch (opcao) { case 1: Console.WriteLine("Nova Pessoa Fsica\n\n"); PessoaFisica pf = new PessoaFisica(); pf.ID = geraID; Console.WriteLine("Cdigo: " + pf.ID); do{ Console.WriteLine("Nome: "); resultado=pf.validaNome(Console.ReadLine()); if(resultado){ Console.WriteLine("OK!"); }else{ Console.WriteLine("O nome tem que conter pelo menos 2 caracteres!"); } }while(!resultado); Console.WriteLine("Endereo: "); pf.Endereco = Console.ReadLine(); Console.WriteLine("E-mail: "); pf.Email = Console.ReadLine(); Console.WriteLine("RG: "); pf.Rg = Console.ReadLine(); Console.WriteLine("CPF: "); pf.Cpf = Console.ReadLine(); pessoasFisicas.Add(pf);//Adiciona a nova pessoa fsica na lista de pessoas fsicas Console.WriteLine("********** Cadastro Realizado com Sucesso!!! *************"); geraID++; Thread.Sleep(2000);//O Mtodo Sleep da Classe Thread para a tela x milissegundos break;

case 2: Console.WriteLine("Nova Pessoa Jurdica\n\n"); PessoaJuridica pj = new PessoaJuridica(); pj.ID = geraID; Console.WriteLine("Cdigo: " + pj.ID); do{ Console.WriteLine("Nome: "); resultado=pj.validaNome(Console.ReadLine()); if(resultado){ Console.WriteLine("OK!"); }else{ Console.WriteLine("O nome tem que conter pelo menos 2 caracteres!"); } }while(!resultado); Console.WriteLine("Endereo: "); pj.Endereco = Console.ReadLine(); Console.WriteLine("E-mail: "); pj.Email = Console.ReadLine(); Console.WriteLine("CNPJ: "); pj.Cnpj = Console.ReadLine(); pessoasJuridicas.Add(pj);//Adiciona a nova pessoa jurdica na lista de pessoas jurdicas Console.WriteLine("********** Cadastro Realizado com Sucesso!!! *************"); geraID++; Thread.Sleep(2000); break; case 3: Console.WriteLine("********** RELATRIO **********"); Console.WriteLine("\n\nPessoas Fsicas"); Console.WriteLine("------------------------------"); for (int i = 0; i < pessoasFisicas.Count; i++) { Console.WriteLine("ID: " + pessoasFisicas[i].ID); Console.WriteLine("Nome: " + pessoasFisicas[i].Nome); Console.WriteLine("Endereo: " + pessoasFisicas[i].Endereco); Console.WriteLine("E-mail: " + pessoasFisicas[i].Email); Console.WriteLine("RG: " + pessoasFisicas[i].Rg); Console.WriteLine("CPF: " + pessoasFisicas[i].Cpf); Console.WriteLine("..........................................."); }

Console.WriteLine("\n\nPessoas Jurdicas"); Console.WriteLine("------------------------------"); for (int i = 0; i < pessoasJuridicas.Count; i++) { Console.WriteLine("ID: " + pessoasJuridicas[i].ID); Console.WriteLine("Nome: " + pessoasJuridicas[i].Nome); Console.WriteLine("Endereo: " + pessoasJuridicas[i].Endereco); Console.WriteLine("E-mail: " + pessoasJuridicas[i].Email); Console.WriteLine("CNPJ: " + pessoasJuridicas[i].Cnpj); Console.WriteLine("..........................................."); } Console.WriteLine("\n\n\nPressione <<<ENTER>>> para voltar"); Console.ReadKey(); break; case 0: Console.WriteLine("Tecle <<<ENTER>>> para sair"); Console.ReadKey(); break; default: Console.WriteLine("Opo invlida!!!"); Thread.Sleep(2000); break; } } while (opcao != 0); } } }

Vous aimerez peut-être aussi