Es besteht darin, verwandte Daten und Operationen darauf in einem Objekt zu kombinieren und Informationen und Mindestoperationen nach außen offenzulegen. Von den Variablen und Funktionen des Objekts müssen Daten, auf die nicht direkt von außen verwiesen werden muss, und Operationen, die nicht verwendet werden, geschützt und verborgen werden. Schützen bedeutet, diese Klasse nicht zu verwenden oder neu zu schreiben. Dies hält die lose Kopplung zwischen Programmen aufrecht und erleichtert die Wartung. Darüber hinaus ist es möglich, Fehler wie unterschiedliche Typen zu generieren und Daten zu schützen. Dies ist besonders wichtig beim Bau von Großsystemen.
Dies bedeutet, dass sich dieselbe Funktion oder Variable je nach Datentyp unterschiedlich verhalten kann. Wenn Sie eine Methode erstellen, die dem Typ entspricht, ist das Programm sehr lang.
Es soll die Mitglieder und Methoden einer Klasse übernehmen und eine neue untergeordnete Klasse erstellen. Durch das Erben können gemeinsame Teile zusammen wiederverwendet werden. Es gibt eine spezielle Art der Vererbung, nämlich die folgenden beiden Vererbungen.
Abstrakte Klassen können nicht instanziiert werden und fungieren nur dann als Programm, wenn sie vererbt werden. Mit abstrakten Klassen können Sie Methoden implementieren und abstrakte Methoden deklarieren. Die deklarierte abstrakte Methode muss im Vererbungsziel implementiert sein.
Hier wird kein Programm geschrieben, nur die Methode wird deklariert. Die geerbte Klasse muss diese Methode implementieren. Bei normaler Vererbung und abstrakter Klassenvererbung können nicht mehrere Klassen vererbt werden, Schnittstellen können jedoch mehrere Vererbungen durchführen. Durch Trennen der Schnittstelle können Sie auswählen, ob das Teil geerbt werden soll oder nicht.
Abstrakte Klassen können Methoden implementieren. Die Schnittstelle kann mehrfach vererbt werden. Eine andere Sichtweise ist, dass die abstrakte Klasse intern und die Schnittstelle extern ist. Wenn eine abstrakte Klasse geerbt wird, wird sie dort häufig abgeschlossen, und wenn eine Schnittstelle geerbt wird, wird die Instanz häufig extern verwendet.
In Python sind alle Variablen und Methoden öffentlich, sodass sie durch einen Unterstrich gekennzeichnet sind. Variablen und Methoden mit einem Unterstrich am Anfang werden als privat behandelt.
Class ClassName():
def __init__(self):
self.public_variable = ‘safe’
self._private_variable = ‘unsafe’
def public_method():
pass
def _private_method():
pass
In Python wird die Abstract Base Class (ABC) verwendet.
class BaseClassName(metaclass=ABCMeta):
@abstractmethod
def abst_method_name(self):
pass
def method_name(self):
print(self.name)
Geben Sie ABCMeta als Metaklasse an und fügen Sie der Definition der abstrakten Methode einen Dekorator namens @abstractmethod hinzu. Dadurch wird sichergestellt, dass die geerbte Klasse abst_method_name überschreibt.
Da Python standardmäßig keine Schnittstelle hat und eine Mehrfachvererbung möglich ist, können Sie nur so etwas wie eine Schnittstelle erstellen. Wenn Sie so etwas machen möchten, definieren Sie die obige abstrakte Klasse ohne Implementierung.
Recommended Posts