Welche Zeile in Tadople gibt einen compiler error?

Panda9296

Bekanntes Mitglied
Hi Leute,
ich bereite mich zur Zeit auf mein OCA vor und habe bereits 3 Testexamen bestanden. Ich versuche meine Lücken zu füllen indem ich Testfragen wie die im Betreff genannte Frage zu lösen und falsche Antworten zu analysieren. Ich verstehe aber folgende Lösung nicht(also ich sage gleich ich wusste in diesem Exam nicht wie viele Antworten richtig sind, aber ich denke es tut jetzt erstmal nichts zur Sache) bitte kann mir jemand ganz genau erklären, warum Option E auch richtig ist.

[CODE lang="java" title="WHich lines in Tadpole giva a compoiler error?"]package animal;
public class Frog{
protected void ribbit{}
void jump{}
}

[/CODE]

[CODE lang="java" title="package other"]package other;
import animal.*;
public class Tadpole extends Frog{
public static void main(String[]args){
Tadpole t= new Tadpole();
t.ribbit();
t.jump();
Frog f = new Tadpole();
f.ribbit();
f.jump();
}

}[/CODE]

[CODE lang="java" title="Antwortmöglichkeiten"]
A: 5
B: 6
C: 7
D: 8
E: 9
F:10

[/CODE]

Um vielleicht besser mein Problem analysieren zu können : Ich verstehe nicht warum die Referenz Frog f das Ergebnis verändert. Methoden beziehen sich doch erstmal immer auf das Objekt solange sie nicht statisch oder privat sind.

Zeile 5 erzeugt ein neues Objekt Tadpole und teilt dieses Objekt der Referenz Tadpole zu. Zeile 6 ruft von diesem Objekt die Methode ribbit auf. Da Tadpole von Frog erbt, bekommt er also die Methode, da der Modifier das erlaubt und somit die Methode vererbt. Zeile 7 ruft die Methode jump auf. Diese wird nicht vererbt, da sie package private ist und somit unsichtbar für dieses Objekt ist. So jetzt geht es ins eingemachte. Wir haben in der Zeile 8 ein neues Objekt von Tadpole, dass aber durch Polymorphie an eine Referenz von Frog gebunden wird. Ok Regeln die mir dazu einfallen, ist, dass wenn eine Methode hidden ist, diese sich dann immer zur Referenz und nicht zum Objekt bezieht. Variablen beziehen sich immer auf die Referenz, sodass die Variable sich in dem Fall auf Frog bezieht... Cool was für eine Variable ist nämlich keine da. Also egal.... jetzt gehe ich in die Zeile die mir Kopfschmerzen bereitet, denn eigentlich wird hier die Methode ribbit aufgerufen. Sie ist eigentlich nicht hidden, den eigentlich sollte sie vererbt werden. Oder passiert hier was anderes, was ich gerade nirgends nachlesen kann. So in Zeile 10 sollte jump wieder einen Fehler werfen(ja tut es auch laut Lösung), da diese Methode default access ist und somit ganz streng die Methode nur im Package sichtbar ist. Ein Kumpel hat da mal gemeint es gibt irgendeine Ausnahme was evtl. auf diesen Fall zutreffen könnte, aber ich brauche hier einfach mal eine genaue Erklärung bitte=)
 
Zuletzt bearbeitet:

LimDul

Top Contributor
Zeile 9: Es wird die Methode ribbit eines animal.Frog Objects aus einer statischen Methode der Klasse other.Tadpole aufgerufen.

Die Methode ribbit ist protected, darf daher nur aufgerufen werden aus:
* Instanzen von abgeleiteten Klassen (Nicht der Fall)
* Aus dem gleichen Package (nicht der Fall)
=> Kompile Fehler

Das in der Variablen f ein Objekt vom Typ TadPole gespeichert ist, ist für die Fragestellung komplett egal. Es geht hier um den Compiler, der schaut nur nach den deklarierten Typen, nicht nach den konkret drin gespeicherten (Das ist die Aufgabe der Runtime zur Laufzeit)
 

M.L.

Top Contributor
Weiterhin: darf man einen Compiler inkl. IDE verwenden ? Immerhin könnte dieses Werkzeug beim weiteren Aufstöbern von (Folge-)Fehlern (oder Ungenauigkeiten) helfen.
 

Panda9296

Bekanntes Mitglied
nein man darf nur das Auge nehmen :D . Wie wenn du den Code auf dem Blatt Papier hast. Dort ist er auch nicht geordnet. Er kann total falsch formatiert sein. Ist er oft auch... und manchmal fehlen ganz banal Klammern usw.
 
Zuletzt bearbeitet:

LimDul

Top Contributor
Was vielleicht zum Verständnis hilft:

Java:
package other;
import animal.*;
public class Tadpole extends Frog{
public static void main(String[]args){
        Tadpole t= new Tadpole();
        t.ribbit();
        t.jump();
        Frog f = erzeugeIrgendeinObjekt();
        f.ribbit();
        f.jump();
    }

}
Versuch nun mal zu entscheiden, ob man die beiden Methoden ausführen kann :)
 

Panda9296

Bekanntes Mitglied
ok ja gut ich gehe wieder von der Referenz aus die ist Frog und da es in einem anderen Paket ist, würde weder ribbit noch jump kompilieren. Also erst überprüft der Compoiler die Referenz und während der runtime wird er sich dann auf das Objekt beziehen. Wo die Referenz Tadpole ist ja gut da wird es vererbt zumindest ribbit jump sowieso nicht, da package private. Hier wird zur laufzeit ganz normal die Methode ribbit ausgegeben, wenn jump aus dem Code gelöscht werden würde
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
S Welche Methode in JFrame überschreiben? Java Basics - Anfänger-Themen 12
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
K Welche Exception? Java Basics - Anfänger-Themen 6
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11
G welche Java-Technologie für JDBC geeignet Java Basics - Anfänger-Themen 6
G Welche Programmiersprache für ein Betriebssystem? Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben