Ex: Classe Galinha pode herdar da classe Animal pois
algumas atributos é aproveitavel como por exemplo peso
Para saber se é viavel a herança é testado o "É um"
Galinha é um Animal ? sim então Galinha herda de Animal
A classe Animal pode ser abstrata já que de fato ela não representa nenhuma
espécie, mas seus atributos e métodos são muito útil para as especies herdarem,
já que todo animal tem um peso, altura, faz algum tipo de barulho e etc ...
Interfaces
É uma classe genérica que disponibiliza um esqueleto de uma função para implementar
public interface FazerBarulho{
double AreaCalculavel(); }
Veja o quão genérico é
Nesta forma as classes que implementarem
esta interface é obrigado a reescrever o
comportamwnto de AreaCalculavel();
No Java 8 é possível escrever um comportamento padrão na interface
default double AreaCalculavel() { return 0; }
Vantagens de Interface
http://i.prntscr.com/3391fc5f5b5e4e82a47e43029425b5f1.png
Polimorfismo que em java pode ser implementado pela classe ou por uma interface,
a interface tem vantagens a mais, porém se quiser fazer pela classe e tornar
obrigatorio o método para classe filha adicione ao metodo o abstract na classe mãe.
Enums
Utilizado para Constantes por exemplo PI=3.1415
São declaradas com letra Maiuscula
Modificadores de Acesso
Os modificadores de acesso servem para proteger a variavel, por
exemplo se o valor de uma variavel que não pode ser negativa,
então é feito o encapsualmento para acessar a variavel