Fehler, Irrtümer, Fragen - Seite 1678
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie können dies verwenden, um ein Analogon zum Schlüsselwort final zu schaffen, das eine weitere Vererbung ausdrücklich verbietet.
Aber wie das obige Beispiel zeigt, kann man keine Analogie herstellen. Sie müssen auch bei privaten Methoden final angeben.
Für die öffentliche Vererbung sollte der maximale Zugang geschützt werden, nicht der private.
Und die Funktion im Beispiel wird genau überladen?
Für die öffentliche Vererbung sollte der maximale Zugang geschützt werden, nicht der private.
Und in dem Beispiel ist die Funktion genau überladen?
Richtig. Ich habe es gerade selbst herausgefunden.
Wenn Sie das tun
BASE() {Func();} // вместо void Init() {Func();} Вызов Base.Init() - убрать конечно.
können Sie selbst überprüfen, ob Sie wissen, was passieren soll.
Im Terminalprotokoll erhalte ich
unbeholfen an die angegebene Stelle im Quellcode gehen. Es wäre praktisch, wenn Sie auf eine solche Meldung im Terminalprotokoll doppelklicken könnten, um direkt zu der angegebenen Zeile zu gelangen.
Wenn jemand dafür ist, soll er es sagen.
Der Klassiker ist eine Schnittstelle in einer Basisklasse mit Neudefinition in Nachfolgeklassen:
Klassisch ist es, wenn geschützte/öffentliche virtuelle Methoden außer Kraft gesetzt werden. Aber für Privatpersonen ist es nicht so offensichtlich (in Bezug auf die Anwendung). Vielen Dank für Ihre Antwort.
Ja, ich habe mein Beispiel bereits gelöscht, ohne Ihre Antwort zu sehen, das war wirklich unglücklich.
Upd. Ich war selbst in den Grundlagen verwirrt, als ich Ihnen antwortete. In diesem Beispiel war alles korrekt, ich hätte es nicht löschen sollen. Das gleiche Beispiel noch einmal mit einem Anwendungsbeispiel:
Upd. Ich war selbst von den Grundlagen verwirrt, als ich Ihnen geantwortet habe. In diesem Beispiel war alles richtig, ich hätte es nicht löschen sollen. Wieder mit einem Beispiel für die Verwendung:
Der Compiler macht keine halben Sachen.
Dies ist kein gutes Beispiel, da die Schnittstelle CAnimal nirgends verwendet wird. Auch zwei Nachkommen sind bekannt geworden. Ich verstehe das Thema, also ist es in Ordnung.
Normales Beispiel. Ein abstraktes Tier macht grundsätzlich Geräusche, die aber nicht definiert sind, so dass wir die Methode Speak() nicht für dieses Tier aufrufen können; sie kann nur für ein Tier einer bestimmten Art aufgerufen werden. Deshalb deklarieren wir eine geschlossene virtuelle Methode in einer Basisklasse und überschreiben sie in den Nachfolgeklassen und öffnen sie.
Normales Beispiel. Ein abstraktes Tier macht grundsätzlich Geräusche, die aber nicht definiert sind, so dass wir die Methode Speak() nicht für dieses Tier aufrufen können; sie kann nur für ein Tier einer bestimmten Art aufgerufen werden. Deshalb deklarieren wir eine geschlossene virtuelle Methode in einer Basisklasse und überschreiben sie in den Nachfolgeklassen und öffnen sie.