O princípio da orientação a objetos que indica a capacidade de abstrair várias implementações diferentes de uma única interface é denominado