herança

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

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…

Vê se isso te ajuda:

[code]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;
}

}[/code]

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

}[/code]

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

}[/code]

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

}[/code]

[code]public class TesteHeranca
{
Pessoa pessoa;

public TesteHeranca()
{
	PessoaFisica pessoaFisica = new PessoaFisica();
	//Métodos da superclasse
	pessoaFisica.setNome("Pessoa Fisica");
	pessoaFisica.setEmail("pessoa@fisica.com");
	pessoaFisica.setDataNascimento("22/02/1980");
	//----------------------------------------//
	pessoaFisica.setCpf("999.999.999-99");
	pessoaFisica.setRg("9999999");
	
	PessoaJuridica pessoaJuridica = new PessoaJuridica();
	//Métodos da superclasse
	pessoaJuridica.setNome("Pessoa Juridica");
	pessoaJuridica.setEmail("pessoa@juridica.com");
	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("pessoa@usuario.com");
	usuario.setDataNascimento("09/12/1990");
	//----------------------------------------//
	//Métodos da superclasse PessoaFisica
	usuario.setCpf("111.111.111-11");
	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();
}

}[/code]

Valeu!!!