Exemplo-1: Uso da função super () em herança única
Quando uma classe filha é criada pela herança de uma classe pai, ela é chamada de Herança única. O uso do super() função em herança única mostrado no seguinte script. Livro é a classe pai aqui que contém um método construtor para inicializar os dados, bookType () método para imprimir o tipo do livro, e desconto() método para exibir a oferta de desconto está disponível ou não. Eng_book é a classe filha aqui que contém um método construtor onde o super() função é usada para chamar o construtor da classe pai. A classe filha tem outro método chamado display_details () para imprimir as informações detalhadas do livro. Os objetos das classes pai e filho foram criados posteriormente para chamar os diferentes métodos das classes.
# Defina a classe pailivro escolar:
# Definir construtor
def __init __ (próprio, título, autor, tipo, oferta):
auto.title = title
auto.autor = autor
auto.tipo = tipo
auto.oferta = oferta
# Defina a função para exibir o tipo de livro
def bookType (self):
se eu.tipo == 1:
imprimir ("% s é um livro% s." %(auto.título, 'Engenharia'))
se eu.tipo == 2:
imprimir ("% s é um livro% s." %(auto.título, 'Médico'))
se eu.type == 3:
imprimir ("% s é um livro% s." %(auto.título, 'Finanças'))
# Defina a função para exibir a oferta de desconto
desconto def (próprio):
se eu.oferta == Verdadeiro:
print ("O livro tem oferta de desconto.")
senão:
print ("O livro não tem oferta de desconto.")
# Defina a classe filha
class Eng_book (Book):
# Definir construtor
def __init __ (próprio, título, autor, tipo, oferta, preço):
super().__init __ (título, autor, tipo, oferta)
auto.preço = preço
# Defina a função para exibir os detalhes do livro
def display_details (self):
super().desconto()
se eu.oferta == Verdadeiro:
auto.preço = self.preço - próprio.preço * 0.15
print ("Nome do livro:% s"% self.título)
print ("Nome do Autor:% s"% self.autor)
imprimir ("Preço:% 0.2f "% self.preço)
print ("Usando a classe pai:")
# Defina o objeto da classe pai
objbook = Book ('Microbiologia Médica', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Função de chamada para exibir o tipo de livro
objbook.bookType ()
# Função de chamada para exibir a oferta de desconto
objbook.desconto()
print ("\ nUsando classe filha:")
# Defina o objeto da classe filha
objEngBook = Eng_book ('Engenharia Matemática', 'H K Dass', 1, Verdadeiro, 50)
# Função de chamada para exibir detalhes do livro
objEngBook.display_details ()
Resultado:
A seguinte saída aparecerá após a execução do script acima. A primeira saída foi gerada usando o objeto da classe pai e a segunda saída foi gerada usando o objeto da classe filha.
Exemplo 2: uso da função super () em heranças múltiplas
Quando uma nova classe é gerada pela herança de várias classes, este tipo de Herança é chamado de herança múltipla. O uso da função super () em várias heranças é mostrado no seguinte script. Departamento é a classe pai que contém um método construtor para inicializar as variáveis e o exibição() método para imprimir o nome do departamento. Cursos são as classes filhas herdadas do Departamento classe, e contém um método construtor e o display_Course_info () método para exibir os detalhes do curso. Professores são as classes filhas herdadas do Departamento classe, e contém um método construtor e o display_Teacher_info () método para exibir os detalhes do professor. Professor_Curso é a última classe filha do script que foi definida pela herança de ambos Cursos e Professores Aulas. Os objetos das três classes filhas foram criados no final do script para acessar os diferentes métodos das classes. O super() função foi usada dentro do método construtor de todas as classes filhas para chamar o construtor da classe pai. São necessários quatro valores de argumento para criar o objeto da classe filha porque a construção da classe Department contém quatro argumentos.
# Definir classe-mãeDepartamento de classe ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
auto.dept_name = dept_name
auto.total_courses = total_courses
auto.total_credit = total_credit
auto.total_teachers = total_teachers
def display (self):
print ("Nome do Departamento:% s"% self.dept_name)
# Defina a primeira classe filha
Cursos de classe (Departamento):
def __init __ (próprio, nome, cursos, créditos, professores):
# Chame o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def display_Course_info (self):
print ("Total de cursos:% d"% self.total_courses)
print ("Total de créditos:% d"% self.Crédito total)
# Defina a segunda classe filha
Professores de classe (Departamento):
def __init __ (próprio, nome, cursos, créditos, professores):
# Chame o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def display_Teacher_info (self):
print ("Total de professores:% d"% self.total_teachers)
# Defina a terceira classe filha herdada de duas classes
classe Professor_Curso (cursos, professores):
def __init __ (próprio, nome, cursos, créditos, professores):
# Chame o construtor da classe pai
super().__init __ (nome, cursos, créditos, professores)
def display_details (self):
super().exibição()
super().display_Course_info ()
super().display_Teacher_info ()
imprimir ("Usando a primeira classe filha")
objCourses = Cursos ('CSE', 72, 150, 50)
objCourses.exibição()
objCourses.display_Course_info ()
imprimir ("\ nUsando a segunda classe filha")
objTeachers = Professores ('BBA', 65, 140, 55)
objTeachers.exibição()
objTeachers.display_Teacher_info ()
print ("\ nUsando a terceira classe filha herdada de várias classes")
objDCT = Teacher_Course ('Inglês', 60, 122, 20)
objDCT.display_details ()
Resultado:
A seguinte saída aparecerá após a execução do script acima. Três saídas foram geradas aqui, criando os objetos de três classes filhas.
Conclusão:
O super() função só pode ser usada dentro da classe filha para chamar o construtor e qualquer outro método da classe pai. Os usos desta função foram mostrados neste tutorial através da criação de herança de nível único e multi-nível. Espero que o propósito de usar esta função em OOP seja esclarecido após a leitura deste tutorial.