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( classe_abstrata1, ... , classe_abstrata1N ):
#corpo
Exemplo 5
from abc import ABC,abstractmethod
class classe_abstrata:
@abstractmethod
def metodo1(p):
pass
class classe_abstrata2:
@abstractmethod
def metodo2(p):
pass
class classe2(classe_abstrata,classe_abstrata2):
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, conscreta e interfaces.
Sintaxe
class nome_classe( classe_abstrata, classe_concreta , interface ):
#corpo
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