Em resposta ao colega Nasser --> https://cursos.alura.com.br/forum/topico-implementar-metodos-abstratos-na-subclasse-97625 Que fez a indagação abaixo:
class Classe(Sized):
pass
class Subclasse(Classe):
def __init__(self, lista, nome):
self.nome = nome
self.lista = lista
def __len__(self):
return len(self.lista)
filmes = Subclasse([1,3,2], "oi")
print(len(filmes))
--
É POSSÍVEL implementar os métodos abstratos na Classe Filha ao invés de implementar na Classe Mãe que herda a classe abstrata. No exemplo acima, A classe abstrata Sized é herdada pela "Classe", porém seus métodos abstratos só são implementados na classe filha "Subclasse.
Além de ferir o SOLID. Toda classe pai/filho deve ser capaz de substituir uma a outra em qualquer hipótese.
No caso de metaclass não, mas no caso não dê herança, sim
É a substituição de liskov