A palavra-chave extends
em Java é usada para indicar que uma classe está herdando de outra classe ou que uma interface está estendendo outra interface. A herança em Java permite que uma classe herde os métodos e campos de outra classe, promovendo o reuso de código e a organização hierárquica entre classes.
Uso com Classes
Quando uma classe herda de outra, a classe filha (ou derivada) pode acessar os membros públicos e protegidos da classe pai (ou base), e também pode sobrescrever métodos para fornecer sua própria implementação.
Sintaxe
class ClassePai {
// Definições de métodos e atributos
}
class ClasseFilha extends ClassePai {
// Métodos e atributos adicionais
}
Exemplo
// Classe Pai
class Animal {
public void fazerSom() {
System.out.println("O animal faz um som");
}
}
// Classe Filha
class Cachorro extends Animal {
public void fazerSom() {
System.out.println("O cachorro late");
}
}
public class ExemploHeranca {
public static void main(String[] args) {
Cachorro dog = new Cachorro();
dog.fazerSom(); // Exibe "O cachorro late"
}
}
Explicação:
- A classe
Cachorro
estende a classeAnimal
, o que significa que herda o métodofazerSom()
. - A classe
Cachorro
sobrescreve o métodofazerSom()
com sua própria implementação.
Uso com Interfaces
A palavra-chave extends
também é usada para estender interfaces. Quando uma interface estende outra, ela herda os métodos daquela interface. Diferente das classes, uma interface pode estender várias interfaces.
Sintaxe
interface InterfaceA {
void metodoA();
}
interface InterfaceB extends InterfaceA {
void metodoB();
}
Exemplo
interface Veiculo {
void iniciar();
}
interface Carro extends Veiculo {
void dirigir();
}
class Sedan implements Carro {
public void iniciar() {
System.out.println("Carro iniciado");
}
public void dirigir() {
System.out.println("Dirigindo o carro");
}
}
public class ExemploInterface {
public static void main(String[] args) {
Sedan meuCarro = new Sedan();
meuCarro.iniciar(); // Exibe "Carro iniciado"
meuCarro.dirigir(); // Exibe "Dirigindo o carro"
}
}
Explicação:
- A interface
Carro
estendeVeiculo
, herdando o métodoiniciar()
. - A classe
Sedan
implementaCarro
, e por isso precisa fornecer implementações para ambos os métodosiniciar()
edirigir()
.
Resumo
- Palavra-chave:
extends
- Uso com Classes: Define herança de uma classe pai para uma classe filha. A classe filha herda os membros da classe pai.
- Uso com Interfaces: Permite que uma interface herde outra interface.
A palavra-chave extends
é fundamental para implementar o conceito de herança em Java, seja entre classes ou interfaces, promovendo a reutilização e a hierarquização do código.