Java dá suporte à herança como parte central de seu funcionamento e, com ela, é possível implementar vários princípios de POO, como a abstração.
Uma classe pode estender outra classe usando a palavra-chave extends e pode herdar de uma interface usando a palavra-chave implements.
Os modificadores de acesso definem regras sobre o acesso às variáveis de membro e aos métodos de uma classe a partir de outras classes (ou de qualquer lugar do código).
Existem quatro modificadores de acesso:
privatepublicprotectedVocê pode ler mais sobre eles neste artigo
Esses conceitos são muito parecidos e muitas vezes são 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