Olá Pessoal,
Vejam se estou entendo as coisas:
Classes abstratas: é uma classe que não pode ser referenciada (ClasseAbastrata ca = new ClasseAbstrata()
e é utilizada como uma classe padrão que será herdada por diversas classes filhas. Pode possuir métodos abastratos que terão que ser reescritos pelas classes filhas.
Exemplo: Funcionario -> Diretor, Gerente, Secretária, …
Herança: quando vc cria uma classe que extend uma classe mãe.
Pergunta: Posso extender uma classe que foi extendida de outra?
Ex.:
class teste {}
class teste1 extend teste {}
class teste2 extend teste1 {}
Polimorfismo: é a forma de utilizar através da herança a criação de um método na classe mãe que utiliza como argumento um tipo dessa classe, para que quando for chamado poderá referenciar as classes filhas.
Interfaces: é tipo uma classe que possui apenas as assinaturas de métodos, que serão implementas pelas as classes que as implementearem.
Herança múltipla: não entendi.