Olá 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