Beim Schreiben einer Unterklasse können wir weiterhin Mitgliedsvariablen deklarieren. Der Name der deklarierten Mitgliedsvariablen ist derselbe wie der Name der von der übergeordneten Klasse geerbten Mitgliedsvariablen, und der deklarierte Typ kann unterschiedlich sein In diesem Fall verbirgt die Unterklasse die geerbten Mitgliedsvariablen.
Die Merkmale von Unterklassen, die geerbte Mitgliedsvariablen verbergen, sind wie folgt:
(1) Von der Unterklasse selbst definierte Unterklassenobjekte und -methoden betreiben Mitgliedsvariablen mit demselben Namen wie die übergeordnete Klasse, die sich auf die von der Unterklasse neu deklarierte Mitgliedsvariable beziehen.
(2) Unterklassenobjekte können weiterhin von der übergeordneten Klasse geerbte Methoden aufrufen, um von der Unterklasse ausgeblendete Mitgliedsvariablen zu bedienen. Das heißt, die von der Unterklasse geerbten Mitgliedsvariablen müssen von der Unterklasse geerbte oder ausgeblendete Mitgliedsvariablen sein.
Beachten:
Von Unterklassen geerbte Methoden können nur auf geerbte und ausgeblendete Mitgliedsvariablen von Unterklassen angewendet werden. Eine von einer Unterklasse neu definierte Methode kann mit Mitgliedsvariablen arbeiten, die von der Unterklasse geerbt und von der Unterklasse neu deklariert wurden, sie kann jedoch nicht mit Mitgliedsvariablen arbeiten, die von der Unterklasse ausgeblendet sind.
Unterklassen können geerbte Methoden ausblenden, indem sie diese überschreiben. Das Überschreiben von Methoden wird auch als Methodenüberschreiben bezeichnet. Wenn eine Unterklasse eine Methode von der übergeordneten Klasse erben kann, hat die Unterklasse das Recht, diese Methode zu überschreiben. Das Überschreiben einer Methode bezieht sich auf die Definition einer Methode in einer Unterklasse. Der Typ dieser Methode stimmt mit dem Typ der Methode der übergeordneten Klasse oder einem Untertyp des Methodentyps der übergeordneten Klasse überein und der Name der Methode Die Anzahl der Parameter, der Typ der Parameter und die Methoden der übergeordneten Klasse sind genau gleich. Die auf diese Weise von einer Unterklasse definierte Methode wird als von der Unterklasse überschriebene Methode bezeichnet und ist keine neue Methode.
Unterklassen können geerbte Methoden durch Methodenumschreiben ausblenden und den Status und das Verhalten der übergeordneten Klasse in ihre eigenen ändern. Wenn die Methode f() der übergeordneten Klasse von der untergeordneten Klasse geerbt werden kann, hat die untergeordnete Klasse das Recht, f() zu überschreiben. Sobald die untergeordnete Klasse die Methode f() der übergeordneten Klasse überschreibt, wird die geerbte Methode f() ausgeblendet. Dann hat die untergeordnete Klasse das Recht, f() zu überschreiben. Wenn ein Klassenobjekt die Methode f() aufruft, muss es die überschriebene Methode f() aufrufen. Wenn die Unterklasse die Methode f () der übergeordneten Klasse nicht überschreibt, sondern erbt, kann das von der Unterklasse erstellte Objekt natürlich die Methode f () aufrufen, aber das von der Methode f () erzeugte Verhalten ist dasselbe wie das der Elternklasse.
Die überschriebene Methode kann nicht nur geerbte Mitgliedsvariablen bedienen und geerbte Methoden aufrufen, sondern auch neu deklarierte Mitgliedsvariablen der Unterklasse bedienen und andere neu definierte Methoden aufrufen, sie kann jedoch nicht die von der Unterklasse ausgeblendeten Mitgliedsvariablen und -methoden bedienen. Wenn eine Unterklasse versteckte Methoden oder Mitgliedsvariablen verwenden möchte, muss sie das Schlüsselwort super verwenden.
Beachten:
Wenn Sie eine Methode einer übergeordneten Klasse überschreiben, dürfen Sie die Zugriffsrechte der Methode nicht reduzieren, aber Sie können die Zugriffsrechte erhöhen. Die Reihenfolge der Zugriffsbeschränkungsmodifikatoren von hohen zu niedrigen Zugriffsrechten ist: öffentlich, geschützt, freundlich,. Privat. Beispiel: Eine Unterklasse überschreibt die Methode f der übergeordneten Klasse. Wenn die Unterklasse überschreibt, darf die Ebene nicht niedriger als die geschützte sein.