Qual com real utilidade e quando usar Polimorfismo em java

Qual a real utilidade de usar polimorfismo? Suponhamos que tenho class abstract Funcionário e uma class ADM que extends Funcionário.

Ao instanciar teria: ADM adm = new ADM();. Qual sentido/vantagem em ter um Funcionário adm = new ADM();?

Raramente você vai instanciar dessa forma, mas a vantagem é que qualquer código que depender de um funcionário, por exemplo um método que recebe um Funcionário por parâmetro, vai funcionar tanto com um objeto Funcionário quanto um objeto Adm.

2 curtidas