06
Herança e Polimorfismo
Tópicos Abordados
•
•
•
•
•
•
Herança
O modificador protected
Sobrescrita de métodos
A palavra-chave super
Polimorfismo
O operador instanceof
Herança
• A herança é um mecanismo que permite que uma classe possa herdar o comportamento de outra classe, ao mesmo tempo em que novos comportamentos podem ser estabelecidos • A vantagem da herança é agrupar coisas comuns para poder reaproveitar código
1
Programando a Herança
Superclasse
Subclasses
public class Celular extends Telefone {
...
} public class Orelhao extends Telefone {
...
}
Herança da Classe Object
• Toda classe em Java herda de apenas uma superclasse Se uma superclasse não for definida, o Java faz a classe herdar de Object
O Modificador protected
• Atributos e métodos declarados com o modificador protected podem ser acessados pelas suas subclasses class Telefone { protected String numero;
...
} class Celular extends Telefone { public void adicionarDDD(String ddd) {
String n = ddd + this.numero;
}
}
O atributo é declarado como protected na superclasse Métodos da subclasse possuem acesso ao atributo declarado na superclasse 2
Sobrescrita de Métodos
• Técnica também conhecida como overriding
• Quando uma classe herda de outra, ela pode redefinir métodos da superclasse, isto é, sobrescrever métodos
– Os métodos sobrescritos substituem os métodos da superclasse
– A assinatura do método sobrescrito deve ser a mesma do método original
Sobrescrita de Métodos class Telefone { public void telefonar() {
//código para telefonar
}
} class Orelhao extends Telefone { public void telefonar() {
//código para telefonar do orelhão
}
}
Orelhao o = new Orelhao();
o.telefonar();
Como o método foi sobrescrito, é chamado o método da subclasse
Sobrescrita de Métodos class Telefone { public void telefonar() {
//código para telefonar
}
} class Orelhao extends Telefone { public void telefonar(int numero) {
//código para telefonar do orelhão
}
}
Orelhao o = new Orelhao();