Mini Curso de Java – Parte 6 1


Java LogoOlá pessoal. Esta é a sexta parte do nosso mini curso de Java que terá 11 partes. Ele é voltado para iniciantes, porém é recomendado que ao estudá-lo, você já tenha pelo menos algum conhecimento em lógica de programação. Se você perdeu:
a primeira parte, leia aqui; a segunda parte, leia aqui; a terceira parte, leia aqui; a quarta parte, leia aqui; a quinta parte, leia aqui;

Herança

Definição:
A Herança é um princípio da Programação Orientada a Objetos, que permite que as classes compartilhem atributos e operações baseados em um relacionamento, geralmente generalização.

A herança permite a criação de subclasses que herdam atributos e operações da classe pai. A herança é um conceito aplicado no momento de criação das classes. Ela é usada na intenção de evitar que classes que possuam atributos ou métodos semelhantes sejam repetidamente criados.

Implementação:
Como exemplo pode-se observar as classes Aluno e Professor, onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada por exemplo, Pessoa, que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode-se dizer que aluno e professor são subclasses de pessoa.

Abaixo temos um exemplo de uma classe Aluno e Professor que não são implementadas com o conceito de herança.
public class Aluno{
…private String nome = “”;
…private String endereco = “”;
…private String telefone = “”;
…private int RA = 0;

…public Aluno(String nome, String endereco, String telefone, int RA){
……this.nome = nome;
……this.endereco = endereco;
……this.telefone = telefone;
……this.RA = RA;
…}

…public void escreveAluno(){
……System.out.println(“Nome: “+this.nome);
……System.out.println(“Endereço: “+this.endereco);
……System.out.println(“Telefone: “+this.telefone);
……System.out.println(“RA: “+this.RA);
…}
}

public class Professor {
…private String nome = “”;
…private String endereco = “”;
…private String telefone = “”;
…private String materia = “”;

…public Professor(String nome, String endereco, String telefone, String materia){
……this.nome = nome;
……this.endereco = endereco;
……this.telefone = telefone;
……this.materia = materia;
…}

…public void escreveProfessor(){
……System.out.println(“Nome: “+this.nome);
……System.out.println(“Endereço: “+this.endereco);
……System.out.println(“Telefone: “+this.telefone);
……System.out.println(“Matéria: “+this.materia);
…}
}

Agora temos as mesmas classes mas com o conceito de herança implementado, então para isso criamos a classe Pessoa que vai contar todos os atributos e métodos comuns as classes Aluno e Professor.
public class Pessoa {
…private String nome = “”;
…private String endereco = “”;
…private String telefone = “”;

…public Pessoa(String nome, String endereco, String telefone){
……this.nome = nome;
……this.endereco = endereco;
……this.telefone = telefone;
…}

…public void escreve(){
……System.out.println(“Nome: “+this.nome);
……System.out.println(“Endereço: “+this.endereco);
……System.out.println(“Telefone: “+this.telefone);
…}
}

public class Aluno extends Pessoa {
…private int RA = 0;
…public Aluno(String nome, String endereco, String telefone, int RA) {
……super(nome,endereco,telefone);
……this.RA = RA;
…}

…public void escreve() {
……super.escreve();
……System.out.println(“RA: ” + this.RA);
…}
}

public class Professor extends Pessoa {
…private String materia = “”;
…public Professor(String nome, String endereco, String telefone, String materia) {
……super(nome,endereco,telefone);
……this.materia = materia;
…}

…public void escreve() {
……super.escreve();
……System.out.println(“Materia: ” + this.materia);
…}
}

Semana que vem estarei de volta com a parte 7 do Mini Curso de Java: Interface. Até lá! 😉

Últimos 5 artigos de Tiago Souza

Sobre Tiago Souza

De Campinas-SP, bacharel em Ciência da Computação pela Anhanguera Educacional. Técnico em Processamento de Dados pelo Cotuca é desenvolvedor Web e trabalhou dois anos com desenvolvimento PHP e Java. Atualmente trabalha como desenvolvedor .Net (C#). Utilizando metodologia SCRUM, Também desenvolve aplicativos para Android por prazer.

Deixe uma resposta