antes de começarmos a aula
você gostaria de fazer um curso proficionalizante? com diploma? então entre no banner abaixo e fassa varios tipos de curso inclusive cursos da area de informatica

Cursos On-line com Certificado
-
Cursos 24 Horas
vamos começar o curso
A
segunda aula de Java publicada neste blog tem um código com
herança usado como exemplo. Apesar disso, apenas falei sobre o comando
extends e não expliquei quase nada sobre
herança. Nesta
aula detalharei um pouco mais e usarei outro código como exemplo, mostrando tudo passo a passo.
Herança é quando uma classe herda atributos de outra. Na imagem abaixo podemos ver um exemplo:
Temos 5 classes: A classe pai (ou superclasse) Pessoa e suas respectivas classes filhas (ou subclasses), que são PF, PJ, Amigos e Parentes. PF é filha da puta classe Pessoa e pai das classes Amigos e Parentes. PJ é filha de Pessoa e não tem subclasses.
Podemos ver também que a classe pessoa tem os
atributos nome, telefone e endereço. A classe PF tem os atributos RG e CPF. A classe PJ tem os atributos CNPJ e IE. A classe Amigos, tem o atributo blog. A classe Parentes tem o atribut e-mail Como PF e PJ são subclasses de Pessoas, elas herdam da classe Pessoas os atributos nome, telefone e endereço. As classes Amigos e Parentes, por serem subclasses de PF,
herdam os atributos RG e CPF, além disso, também herdam os atributos nome, telefone e endereço, já que sua classe pai é uma classe filha de Pessoa (poderiamos dizer que a classe Pessoa é avô de Amigos e Parentes

).

Por esta razão podemos dizer que a
hierarquia em Java ocorre de cima para baixo. Uma superclasse (ou classe pai) pode ter várias subclasses (ou classes filhas) que, por sua vez, podem ter suas próprias subclasses. Mas o oposto não acontece. Não é possível para uma classe filha ter duas ou mais classes pais (se pudesse já ia ter gente chamando a classe filha de “
classe bastarda” ahuheuehuaheuhau).
Para melhor entendimento usaremos o esquema da primeira imagem para criarmos um programinha simples que irá receber os dados de pessoas digitados pelo usuário.
Código
Temos abaixo código do programa que receberá os dados digitados pelo usuário. Os comandos que ainda não foram explicados serão explicados antes da criação do código de cada classe. Gostaria de ressaltar que o foco aqui é a demonstração da herança. Por essa razão os comandos aqui são explicados apenas para facilitar o entendimento de como o código funciona.
Pessoa.java
Aqui a classe pai é criada com seus atributos e métodos construtores. O primeiro método já define o valor dos atributos enquanto o segundo método recebe os valores por parâmetro (como já foi explicado na terceira aula).
11 | public Pessoa(String nome, String telefone, String endereco) { |
13 | this .telefone = telefone; |
14 | this .endereco = endereco; |
PF.java
Aqui é criada a classe PF, que é filha da classe Pessoa. Por essa razão é utilizada a cláusula extends na criação da classe (para mostrar que a classe PF herda atributos da classe Pessoa). Da mesma forma que na classe Pessoa, na PF foram criados os métodos construtores. A diferença é que dessa vez utilizamos o comando super(), que serve para chamar o construtor da classe pai. É importante notar que o método construtor usado para passagem de parâmetros não tem apenas os seus atributos que já foram definidos na criação, mas também tem os atributos da classe Pessoa: public PF (String nome, String telefone, String endereco, String RG, String CPF) Na verdade tanto faz o nome que será usado. Para evitar confusões usei nomes iguais aos dos atributos: nome, telefone e endereco. Poderia também usar n, t e e que, da mesma forma, os valores seriam passados, já que o super() funciona de forma a enviar os parâmetros na ordem em que se encontram. No comando super() foram definidos os atributos que serão enviados para a classe pai. É justamente aqui que o super() faz a diferença, na passagem por parâmetros.
public
class
PF
extends
Pessoa {
10 | public PF(String nome, String telefone, String endereco, String RG, String CPF) { |
11 | super (nome, telefone, endereco); |
Amigos.java
Esta classe é filha da classe PF. O código é feito da mesma forma. São definidos na passagem por parâmetros os atributos da classe pai PF e também da classe Pessoa, que também é super classe da classe PF (classe avô, de certa forma ;P). O super(), da mesma forma, continua recebendo todos os parâmetros de suas superclasses. Sempre na ordem correta… De cima para baixo.
public
class
Amigos
extends
PF {
08 | public Amigos(String nome, String telefone, String endereco, String RG, String CPF, String blog) { |
09 | super (nome,telefone,endereco,RG,CPF); |
Parentes.java
Aqui o código é feito da mesma forma que o código acima, por se tratar também de uma subclasse da classe PF.
public
class
Parentes
extends
PF {
08 | public Parentes(String nome, String telefone, String endereco, String RG, String CPF, String email) { |
09 | super (nome,telefone,endereco,RG,CPF); |
PJ.java
Aqui o código é feito praticamente igual o código da classe PF, já que PJ é subclasse apenas da classe Pessoa.
public
class
PJ
extends
Pessoa {
10 | public PJ(String nome, String telefone, String endereco, String CNPJ, String IE) { |
11 | super (nome, telefone, endereco); |
CadastraPessoa.java
Este é o
método principal (
main), que é o
primeiro código a ser executado. Por ser um
código um pouco maior e uma classe diferente das outras, deixarei os comentários dentro do código para facilitar o entendimento e a visualização.
import
javax.swing.JOptionPane;
03 | public class CadastraPessoa { |
05 | public static void main(String[] args) { |
07 | Pessoa objPessoa = new Pessoa(); |
10 | int opcao = Integer.parseInt(JOptionPane.showInputDialog( "Digite a opção: \n\n1. Pessoa física\n2. Pessoa Jurídica" )); |
13 | String nome = JOptionPane.showInputDialog( "Digite o nome" ); |
14 | String telefone = JOptionPane.showInputDialog( "Digite o telefone" ); |
15 | String endereco = JOptionPane.showInputDialog( "Digite o endereço" ); |
21 | String RG = JOptionPane.showInputDialog( "Digite o RG" ); |
22 | String CPF = JOptionPane.showInputDialog( "Digite o CPF" ); |
24 | opcao = Integer.parseInt(JOptionPane.showInputDialog( "Digite a opção:\n\n1. Amigos\n2. Parentes" )); |
26 | String blog = JOptionPane.showInputDialog( "Digite o blog" ); |
29 | Amigos objAmigos = new Amigos(nome,telefone,endereco,RG,CPF,blog); |
32 | String email = JOptionPane.showInputDialog( "Digite o e-mail" ); |
33 | Parentes objParentes = new Parentes(nome,telefone,endereco,RG,CPF,email); |
38 | String CNPJ = JOptionPane.showInputDialog( "Digite o CNPJ" ); |
39 | String IE = JOptionPane.showInputDialog( "Digite a Inscrição Estadual" ); |
40 | PJ objPJ = new PJ(nome,telefone,endereco,CNPJ,IE); |
Espero que tenha ficado de fácil entendimento esta aula. Qualquer sugestão, dúvida ou crítica é só comentar abaixo que será muito bem-vindo
Nenhum comentário:
Postar um comentário
retirei ENVIO anonimo porque algumas pessoas faziam perguntas anonimamente e eu não tinha como contacta-los
para duvidas pode enviar um e-mail para
rpgmak@rpgmak.tk