A herança de programação orientada para o objecto

I. Introdução

  1, construir um novo tipo de herança é sob forma de classe, classe pai pode ser chamado de uma classe base ou superclasse, a nova classe pode ser chamado de subclasse ou classe derivada, subclasse pode herdar as propriedades da classe pai.

  2, a classe principal pode ser herdada pelas subclasses, as subclasses pode herdar também uma pluralidade de classes pai.

  3, em python3, a mais alta classe ancestral herda o padrão built-in de classe de objeto.

  4, em python2, a mais alta classe ancestral não herda padrão, desta vez, a classe e suas classes descendentes são classes clássicas. A menos que explicitamente mais elevada classe pai ancestral é o objeto interno, que a classe e seus descendentes são a nova classe para classe.

classe bisavô: 
    X = 111
 classe Avô (bisavô):
     Passe 
classe Pai (avô):
     Passe 
classe Filho (Pai):
     Passe 
son_obj_1 = Filho ()
 Imprimir (. bisavô __bases__ )   # para o resultado python3 (<class 'objeto'>, ) resultado python2 () 
Imprimir (son_obj_1.x)
 Imprimir (Son.x)
 Imprimir (Father.x)
 Imprimir (Grandfather.x)
 # Os resultados acima são 111

 

Em segundo lugar, a herança múltipla: a classe herda de subclasse mais de um pai

  1, as vantagens de: subclasse pode utilizar as propriedades de cada classe pai, melhorar a utilização do código

  2. Desvantagens:

    ① de pensar logicamente, esta criança pertence à classe se define uma "categoria" tornou-se turva.

    Legibilidade e escalabilidade ② código pior, pode levar a um "problema de diamante."

  3, se inevitavelmente requer o uso de maneira herança múltipla, método deve Mixins.

Em terceiro lugar, redundância de código herança resolve

class Employee: 
    Sexo = ' MACHO '   # atributos subclasse total de dados 
    DEF  o __init__ (Self, nome, idade):   # uma instância de subclasse objeto de comum atribui 
        a self.name = nome 
        self.age = Idade
     DEF SHOW_NAME (self):   # há uma função subclasse 
        de impressão ( ' esta é uma equipe} { ' .format (self.name))
 classe Worker (o funcionário):
     DEF work_time (Self, Time):   # específicos de subclasse Trabalhador apresenta 
        Imprimir ( ' {} horas de hoje da seguinte forma: } { ' .format (a self.name, Time))
classe Manager (o empregado):
     DEF  do __init__ (Self, nome, idade, habilidade): 
        . Employee o __init__ (Self, nome, idade)   # quando instância objeto de subclasse Manager, se o pai tem referências diretas 
        self.skill = habilidade   # pai não é, em seguida, definível 
    DEF work_target (self, alvo):   # específica Gestor subclasse apresenta 
        Imprimir ( ' {} indicadores mês: {} ' .format (a self.name, alvo)) 
worker_obj_1 = Operário ( ' Tom ' , ' 18 é ' ) 
worker_obj_1.show_name () 
worker_obj_1.work_time ( ' 8H ') 
Manager_obj_1 = Manager ( ' janeiro ' , ' 20 ' , ' dança ' ) 
manager_obj_1.show_name () 
manager_obj_1.work_target ( ' 10 Yi ' )
 # resultado 
'' ' 
Este é o tom empregado 
tom ao trabalho hoje: 8h 
Esta é pessoal janeiro 
indicadores jan este mês: 1 bilhão 
'' '

Em quarto lugar, a ordem de busca propriedade

  1, o caso de herança simples: porque é uma relação linear, basta seguir antiguidade pode encontrar pequeno a grande porte.

  2, múltiplas situações de herança:

 

Acho que você gosta

Origin www.cnblogs.com/caoyu080202201/p/12669110.html
Recomendado
Clasificación