Die Vererbung der objektorientierten Programmierung

I. Einführung

  1, baut eine neue Art der Vererbung im Gang Klasse ist, kann übergeordnete Klasse einer Basisklasse oder Superklasse aufgerufen wird, kann die neue Klasse mit dem Namen Unterklasse oder abgeleiteten Klasse wird, Unterklasse kann die Eigenschaften der Elternklasse erben.

  2, die übergeordnete Klasse von Unterklassen geerbt werden kann, können Subklassen erben auch eine Vielzahl von übergeordneten Klassen.

  3, in python3 erbt die höchsten Vorfahrklasse den Standard eingebauten Objektklasse.

  4, in python2, die höchsten Vorfahrklasse nicht erbt Standard, diesmal, die Klasse und ihre abgeleiteten Klassen sind klassische Klassen. Sofern nicht ausdrücklich höchste Vorfahren Elternklasse der eingebaute Objekt ist, dass Klasse und ihre Nachkommen sind die neue Klasse zu Klasse.

Klasse Urgroßvater: 
    X = 111
 Klasse Großvater (Urgroßvater):
     Pass 
Klasse Vater (Großvater):
     Pass 
Klasse Sohn (Vater):
     Pass 
son_obj_1 = Son ()
 Drucke (. Urgroßvater __bases__ )   # zu python3 Ergebnis (<Klasse 'Objekt'>, ) python2 Ergebnis () 
drucken (son_obj_1.x)
 drucken (Son.x)
 drucken (Father.x)
 drucken (Grandfather.x)
 # Die obigen Ergebnisse sind 111

 

Zweitens Mehrfachvererbung: eine Unterklasse erbt mehr als eine Elternklasse

  1, die Vorteile: Unterklasse können die Eigenschaften der einzelnen Elternklasse verwenden, verbessern die Nutzung des Codes

  2. Nachteile:

    ① vom Denken logisch, gehört dieses Kind in die Klasse selbst eine „Kategorie“ definiert verschwommen worden ist.

    Ablesbarkeit und Skalierbarkeit ② Code schlechter kann es führen „Diamant Problem.“

  3, wenn erfordert zwangsläufig die Verwendung von Mehrfachvererbung Weise sollte Mixins Methode.

Drittens resolve Vererbung Coderedundanz

Klasse der Mitarbeiter: 
    Geschlecht = ' MALE '   # Unterklasse Gesamtdatenattribute 
    DEF  die __init__ (Self, Name, Alter):   # eine Unterklasse Objektinstanz von gemeinsamen Attribute 
        der self.name = Name 
        self.age = Alter
     DEF SHOW_NAME (Selbst):   # Es gibt eine Unterklasse Funktion 
        Print ( ' dies ist ein Personal} { ' .format (self.name))
 Klasse Worker (der Arbeitnehmer):
     DEF work_time (Selbst, Zeit):   # Worker Unterklasse spezifische Merkmale 
        Print ( " {} Stunden heute wie folgt: } { ' .format (die self.name, Zeit))
Klasse Manager (die Mitarbeiter):
     DEF  die __init__ (Self, Name, Alter, Fähigkeiten): 
        . die Mitarbeiter die __init__ (Self, Name, Alter)   # wenn Unterklasse - Manager Objektinstanz, wenn die übergeordnete direkte references 
        self.skill = Geschicklichkeit   # Eltern ist es nicht, und dann definierbar 
    DEF work_target (self, Ziel):   # Manager - Unterklasse Besonderheiten 
        Print ( ' {} Monat Indikatoren: {} ' .format (die self.name, Ziel)) 
worker_obj_1 = der Arbeiter ( ' Tom ' , ' 18 ' ) 
worker_obj_1.show_name () 
worker_obj_1.work_time ( ' 8H ') 
Manager_obj_1 = Manager ( ' Januar ' , ' 20 ' , ' Tanz ' ) 
manager_obj_1.show_name () 
manager_obj_1.work_target ( ' 10 Yi ' )
 # Ergebnis 
'' ' 
Dies ist der Mitarbeiter tom 
tom heute an der Arbeit: 8h 
Dies ist Personal Januar 
Januar Indikatoren in diesem Monat: 1 Milliarde 
‚‘ '

Viertens Immobilien Suchauftrag

  1, der Fall der Einfachvererbung: weil es eine lineare Beziehung ist, einfach Seniorität folgen können kleine bis große finden.

  2, Mehrfachvererbung Situationen:

 

Ich denke du magst

Origin www.cnblogs.com/caoyu080202201/p/12669110.html
Empfohlen
Rangfolge