herança

2 respostas
S

estou estudando sozinho e preciso de um exemplo de programa simples com tres classes que contenha herança, para eu poder visualizar, alguem tem alguma coisa pronta?

obrigado

2 Respostas

R

Exercicio da minha faculdade:

Classe Pessoa

import javax.swing.JOptionPane;

class Pessoa {
	protected String Nome;
	protected int Idade;
	protected float Peso;
	
public Pessoa(){
	setNome("");
	setIdade(0);
	setPeso(0);
}

public void setNome(String _Nome) { Nome=_Nome; }
public void setIdade(int _Idade) { Idade=_Idade; }
public void setPeso(float _Peso) { Peso=_Peso; }

public String getNome() { return Nome; }
public int getIdade() { return Idade; }
public float getPeso() { return Peso; }

public void Leia(){
	setNome(JOptionPane.showInputDialog("Nome?"));
	setIdade(Integer.parseInt(JOptionPane.showInputDialog("Idade?")));
	setPeso(Float.parseFloat(JOptionPane.showInputDialog("Peso?")));
}

public void Escreva(){
	JOptionPane.showMessageDialog(null, "Nome: " + getNome() + "/n"+"Idade: " + getIdade() +"/n"+"Peso: " + getPeso() );
}

}

Classe PessoaF (pessoa sexo feminino)

import javax.swing.JOptionPane;

class PessoaF extends Pessoa {
	private char Gravidez;
	
public PessoaF(){
	super();
	setGravidez(' ');
}

public void setGravidez(char Gra) { Gravidez=Gra; }

public char getGravidez() { return Gravidez; }

public void Leia(){
	super.Leia();
	setGravidez(JOptionPane.showInputDialog("Gravidez S-sim N-não").charAt(0));
}

public void Escreva(){
	super.Escreva();
	JOptionPane.showMessageDialog(null, "Gradidez: " + getGravidez());
}

}

PessoaM (sexo masculino)

import javax.swing.JOptionPane;

class PessoaM extends Pessoa {
	private char ServicoMil;
	
public PessoaM(){
	super();
	setServicoMil(' ');
}

public void setServicoMil(char Mil) { ServicoMil=Mil; }

public char getServicoMil() { return ServicoMil; }

public void Leia(){
	super.Leia();
	setServicoMil(JOptionPane.showInputDialog("Serviço militar S-sim N-não").charAt(0));
}

public void Escreva(){
	super.Leia();
	JOptionPane.showMessageDialog(null, "Serviço militar: " + getServicoMil());
}

}

Os metodos (mão fazem uso de herença)

import javax.swing.JOptionPane;

class UsaPessoa {
	
	private int ContM;
	private int ContF;
	private final int Limite=10;
	private int Tipo;
	private PessoaM  Mas[] = new PessoaM[Limite];
	private PessoaF  Fem[] = new PessoaF[Limite];
	
public UsaPessoa(){
	setContM(0);
	setContF(0);
}
//modificadores
public void setContM(int _ContM){ ContM = _ContM; }
public void setContF(int _ContF){ ContF = _ContF; }

//recuperadores
public int getContM(){ return ContM; }
public int getContF(){ return ContF; }
public int getLimite(){ return Limite; }

public void Cadastro(int Tipo){
	if (Tipo==1){
		if (getContM()<getLimite()){
		Mas[getContM()] = new PessoaM();
		Mas[getContM()].Leia();
		setContM(getContM()+1);	
		}	
	else
		JOptionPane.showMessageDialog(null, "Vetor Lotado");
	}
	else
	if (getContF()<getLimite()){
		Fem[getContF()] = new PessoaF();
		Fem[getContF()].Leia();
		setContF(getContF()+1);	
		}	
	else
		JOptionPane.showMessageDialog(null, "Vetor Lotado");
	
}

public void MaisIdosa() {
	int aux=0;
	int pos=0;
	
	for (int i=0; i<getContF(); i++){
		if (Fem[i].getIdade()>aux)
		aux=Fem[i].getIdade();
		pos=i;
	}
	JOptionPane.showMessageDialog(null, "Mulher mais idosa: " + Fem[pos].getNome() );
}

public void HomensMil(){
	int x=0;
	for (int i=0; i<getContM(); i++){
		if (Mas[i].getServicoMil()=='S' || Mas[i].getServicoMil()=='s')
			x=x+1;
	}
	JOptionPane.showMessageDialog(null, "Dos homens "+x+" fizeram serviço militar");
}

public void ListaGravidas(){
	for (int i=0; i<getContF(); i++){
		if (Fem[i].getGravidez()=='S' || Fem[i].getGravidez()=='s'){
			JOptionPane.showMessageDialog(null, "A gravida: " + Fem[i].getNome() );
		}
		else
		JOptionPane.showMessageDialog(null, "nenhuma gravida");
	}
	
}

public void RetornaSexo(String _Nome){
	
	int i=0;
	int Max = ((getContM() > getContF())? getContM():getContF());
	for (i=0; i<Max; i++){
	  if ((i < getContM()) && (Mas[i].getNome().equalsIgnoreCase(_Nome))){
	  	JOptionPane.showMessageDialog(null,"Masculino");
	  	i = 998;
	  }
	  else
	    if ((i < getContF()) && (Fem[i].getNome().equalsIgnoreCase(_Nome))){
	  	  JOptionPane.showMessageDialog(null,"Feminino");
	  	  i = 998;
	    }
	 	  	
    }
    
    if( i != 999){
          	  JOptionPane.showMessageDialog(null,"Não EXISTE!");
    }
    
}

public void MaisPesado() {
	float aux=0;
	int pos=0;
	
	for (int i=0; i<getContM(); i++){
		if (Mas[i].getPeso()>aux)
		aux=Mas[i].getPeso();
		pos=i;
	}
	JOptionPane.showMessageDialog(null, "Mulher mais idosa: " + Mas[pos].getNome() );
	
}

public void Menu(){
	int op=0;
	String _Nome="";
	int tipo=0;
	do{
	op=Integer.parseInt(JOptionPane.showInputDialog("Digite: \n 1-para Cadastro \n 2-Numero de homens que serviram \n" +
								   "3-Listar mulheres gravidas \n 4-Recebe nome como paramentro retorna sexo \n"+
								   "5-Mostra nome do homem mais pesado \n 6 Mais idosa \n 7 sair"));
								                  
    switch(op){
    	case 1:Tipo=Integer.parseInt(JOptionPane.showInputDialog("Digite 1 para Homem 2 para Mulher"));
    		   Cadastro(Tipo);
    		   break;
    	case 2:HomensMil();
    		   break;
    	case 3:ListaGravidas();
    		   break;
    	case 4:_Nome=JOptionPane.showInputDialog("Digite o nome");
    		   RetornaSexo(_Nome);
    		   break;
    	case 5:MaisPesado();
    		   break;
    	case 6:MaisIdosa();
    		   break;	   
    	
    		  
    }
}while(op!=7);
System.exit(0);
}

}

Main:

class UsarPessoa{
	public static void main (String args[]){
	
		UsaPessoa  P=new UsaPessoa();
		P.Menu();
	
}
}

Espero ter ajudado…

R

Vê se isso te ajuda:

public class Pessoa
{
	private String nome;
	private String email;
	private String dataNascimento;
	
	protected String getDataNascimento()
	{
		return dataNascimento;
	}
	protected void setDataNascimento(String dataNascimento) 
	{
		this.dataNascimento = dataNascimento;
	}
	protected String getEmail()
	{
		return email;
	}
	protected void setEmail(String email)
	{
		this.email = email;
	}
	protected String getNome()
	{
		return nome;
	}
	protected void setNome(String nome)
	{
		this.nome = nome;
	}
}
public class PessoaFisica extends Pessoa
{
	private String cpf;
	private String rg;
	
	public String getCpf()
	{
		return cpf;
	}
	public void setCpf(String cpf)
	{
		this.cpf = cpf;
	}
	public String getRg()
	{
		return rg;
	}
	public void setRg(String rg)
	{
		this.rg = rg;
	}
	
	public String toString()
	{
		return "Nome: " + super.getNome() + "\nEmail: " + super.getEmail() + 
				"\nData de Nascimento: " + super.getDataNascimento() + "\nCPF: " +
				getCpf() + "\nRG: " + getRg();
	}
}
public class PessoaJuridica extends Pessoa
{
	private String cnpj;
	private String inscricaoEstadual;
	
	public String getCnpj()
	{
		return cnpj;
	}
	public void setCnpj(String cnpj)
	{
		this.cnpj = cnpj;
	}
	public String getInscricaoEstadual()
	{
		return inscricaoEstadual;
	}
	public void setInscricaoEstadual(String inscricaoEstadual) 
	{
		this.inscricaoEstadual = inscricaoEstadual;
	}
	
	public String toString()
	{
		return "Nome: " + super.getNome() + "\nEmail: " + super.getEmail() + 
				"\nData de Nascimento: " + super.getDataNascimento() + "\nCNPJ: " +
				getCnpj() + "\nInscricao Estadual: " + getInscricaoEstadual();
	}
}
public class Usuario extends PessoaFisica
{
	private String login;
	private String senha;
	
	public String getLogin()
	{
		return login;
	}
	public void setLogin(String login)
	{
		this.login = login;
	}
	
	public String toString()
	{
		return "Nome: " + super.getNome() + "\nEmail: " + super.getEmail() + 
				"\nData de Nascimento: " + super.getDataNascimento() + "\nCPF: " +
				getCpf() + "\nRG: " + getRg() + "\nLogin: " + getLogin();
	}
}
public class TesteHeranca
{
	Pessoa pessoa;
	
	public TesteHeranca()
	{
		PessoaFisica pessoaFisica = new PessoaFisica();
		//Métodos da superclasse
		pessoaFisica.setNome("Pessoa Fisica");
		pessoaFisica.setEmail("[email removido]");
		pessoaFisica.setDataNascimento("22/02/1980");
		//----------------------------------------//
		pessoaFisica.setCpf("[CPF removido]");
		pessoaFisica.setRg("9999999");
		
		PessoaJuridica pessoaJuridica = new PessoaJuridica();
		//Métodos da superclasse
		pessoaJuridica.setNome("Pessoa Juridica");
		pessoaJuridica.setEmail("[email removido]");
		pessoaJuridica.setDataNascimento("15/06/1976");
		//----------------------------------------//
		pessoaJuridica.setCnpj("99.999.999/9999-99");
		pessoaJuridica.setInscricaoEstadual("999.999.999.999");
		
		Usuario usuario = new Usuario();
		//Métodos da superclasse Pessoa
		usuario.setNome("Usuario");
		usuario.setEmail("[email removido]");
		usuario.setDataNascimento("09/12/1990");
		//----------------------------------------//
		//Métodos da superclasse PessoaFisica
		usuario.setCpf("[CPF removido]");
		usuario.setRg("1111111");
		//----------------------------------------//
		usuario.setLogin("Login");
		
		pessoa = pessoaFisica;
		System.out.println("Imprime os dados da PessoaFisica: ");
		System.out.println(pessoa.toString());
		System.out.println();
		System.out.println("-----------------------------------------");
		
		pessoa = pessoaJuridica;
		System.out.println("Imprime os dados da PessoaJuridica: ");
		System.out.println(pessoa.toString());
		System.out.println();
		System.out.println("-----------------------------------------");
		
		pessoa = usuario;
		System.out.println("Imprime os dados do Usuario: ");
		System.out.println(pessoa.toString());
		System.out.println();
		System.out.println("-----------------------------------------");
	}
	
	public static void main(String[] args)
	{
		new TesteHeranca();
	}
}

Valeu!!!

Criado 24 de maio de 2005
Ultima resposta 24 de mai. de 2005
Respostas 2
Participantes 3