O Java suporta a herança como funcionalidade central e, a partir dela, permite alcançar muitos princípios de POO, como a abstração.
Uma classe pode estender outra classe com a palavra-chave extends e pode herdar de uma interface com a palavra-chave implements.
Os modificadores de acesso definem regras para as variáveis membro e os métodos de uma classe quanto ao seu acesso a partir de outras classes (ou de qualquer ponto do código).
Existem quatro modificadores de acesso:
privatepublicprotectedPodes ler mais sobre eles neste artigo
Estes conceitos são muito semelhantes e são frequentemente confundidos.
interface Animal() {
public void bark();
}
class Dog implements Animal {
public void bark() {
System.out.println("Bark");
}
}
Aqui, Dog É-UM Animal
interface Engine {
}
class Car {
private Engine engine;
}
Aqui, Car TEM-UM Engine