JavaRush /Java-Blog /Random-DE /Erweiterung/Eingrenzung der Referenztypen: unterschiedlic...
Core
Level 35
Екатеринбург

Erweiterung/Eingrenzung der Referenztypen: unterschiedliche Quellen – unterschiedliche Interpretation

Veröffentlicht in der Gruppe Random-DE
Guten Tag. Es besteht der Verdacht auf einen Fehler in den JavaRush-Vorlesungen. Es gebe eine übergeordnete Klasse und eine davon geerbte untergeordnete Klasse. Es seien die folgenden Codezeilen vorhanden: Parent parent = new Child; Child child = (Child) parent; Gemäß der Vorlesung des Kurses der Stufe 12, Lektion 1 (1. Polymorphismus und Überschreiben), Absatz 5) (Typumwandlung). ) Die erste Zeile ist eine Verengung und die zweite eine Erweiterung (in der Vorlesung ist Kuh der Elternteil, Wal der Erbe). Dies ist jedoch nicht wahr. Alles ist genau das Gegenteil. Die Bedeutung dessen, was beschrieben wird, ist klar: In der ersten Zeile haben wir ein Objekt vom Typ Child erstellt und seine Verwendung nur auf die in der Parent-Klasse beschriebenen Methoden beschränkt. Dies ist jedoch eine Erweiterung und daher erfolgt eine solche Reduzierung implizit. Und in den Zusatzmaterialien von Level 10 hieß es: Ihr zu verlinkender Text...
Erweiterung bedeutet den Übergang von einem spezifischeren Typ zu einem weniger spezifischen Typ, d. h. Übergang vom Kind zum Elternteil. In unserem Beispiel ist die Konvertierung von einem beliebigen Erben (Child, Child2) zum übergeordneten Element (Parent) eine Erweiterung, ein Übergang zu einem allgemeineren Typ. Ähnlich wie bei primitiven Typen wird dieser Übergang bei Bedarf von der JVM selbst durchgeführt und ist für den Entwickler unsichtbar, d. h. er erfordert keinen zusätzlichen Aufwand, da er immer gelingt: Sie können jederzeit auf ein von einem generiertes Objekt zugreifen Erbe nach dem Typ seines übergeordneten Elements. Elternteil p1=neues Kind(); Parent p2=new Child2(); In beiden Zeilen wird Variablen vom Typ Parent ein Wert eines anderen Typs zugewiesen, sodass eine Konvertierung erfolgt. Da es sich um eine Erweiterung handelt, erfolgt dies automatisch und ist immer erfolgreich.
Die zweite Zeile meines Beispiels hingegen, nach demselben Zusatz. Materialien ist eine Einengung, die eine explizite Angabe des Typs in Klammern erfordert. Und in der Vorlesung wird es als Erweiterung interpretiert, was wahrscheinlich falsch ist. Bitte erklären Sie es. Ich möchte keine doppelt widersprüchliche Sicht auf die Typumwandlung haben. Nachfolgend ein Ausschnitt aus der Vorlesung. Vorlesungsfragment Es gab noch Fehlerverdacht in den (vorhergehenden) Vorlesungen. Wo soll ich darüber schreiben? Ich habe es nicht in den FAQ gefunden.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION