Para que seja possível o uso de mais de uma interface, precisamos criar uma classe e informar que
quais classes abstratas serão herdadas.
Sintaxe
class nome_classe(nome_classe_abstrata1, nome_classe_abstrata2, nome_classe_abstrata1N)
#corpo
Exemplo 5
from abc import ABC,abstractmethod
class interface1:
@abstractmethod
def metodo1(p):
pass
class interface2:
@abstractmethod
def metodo2(p):
pass
class classe2(interface1,interface2):
def metodo1(self,p):
print(p)
def metodo2(self,p):
print(p*p)
obj = classe2()
obj.metodo1(1)
obj.metodo2(2)
Saída
1
4
A linguagem Python permite também que a herança múltipla de classe abstrata e também mista com interfaces.
Exemplo 6
from abc import ABC,abstractmethod
class abstrata:
@abstractmethod
def metodo1(self): #método abstrato
pass
def metodo2(self): #método concreto
print("metodo2")
class classe:
def metodo3(self): #método abstrato
print("metodo3")
def metodo4(self): #método concreto
print("metodo4")
class interface:
@abstractmethod
def metodo5(p):
pass
class classe1(abstrata,classe,interface):
def metodo1(self): #método abstrato implementado
print("metodo1")
def metodo5(self): #método abstrato implementado
print("metodo5")
obj = classe1()
obj.metodo1()
obj.metodo2()
obj.metodo3()
obj.metodo4()
obj.metodo5()
Saída
metodo1
metodo2
metodo3
metodo4
metodo5