Dynamische Bindung

Status
Nicht offen für weitere Antworten.

Paddel

Bekanntes Mitglied
Hallo, Ich lerne im Mom Java und ich beziehe mich auf die Seite www.galileocomputing.de/openbook/javainsel6/javainsel_06_008.htm#mjb8dcfe187797d78bb6ae7c1884e0dafb
und ich verstehe das folgende Beispiel einfach nicht

Code:
class NoPolyWithPrivate 
{ 
  public static void main( String[] args ) 
  { 
    Unter unsicht = new Unter(); 
    System.out.println( unsicht.bar() );   // 2 
  } 
} 
 
class Ober 
{ 
  private int furcht() 
  { 
    return 2; 
  } 
 
  int bar() 
  { 
    return furcht(); 
  } 
} 
 
class Unter extends Ober 
{ 
  // Überschreibt nicht, daher kein @Override 
  public int furcht() 
  { 
    return 1; 
  } 
}
Bei diesem Code läuft es folgendermassen das frucht ja aufegrufen wird. Und laut polymorphie geht es ja von unten nach oben. Sprich eigentlich müsste er jetzt die Methode der Unterklasse ausfrufen Aber da die Methode oben privat ist ruft er die private auf? In der der Erklärung steht etwas von dynmaischer Bindung. Die habe ich so verstanden das der Compiler erts zur Laufzeit ermittelt wann er welche Methode aufrufen soll. Aber mehr kann ich aus den Texten nicht ableiten

6.8.1 Spätes dynamisches Binden als Beispiel für Polymorphie

6.8.2 Unpolymorph bei privaten, statischen und finalen Methoden

sind die Kapitel worauf meine Fragen abzielen. Ich wäre sehr dankbar wenn mir das mal jemand erklären könnte da ich einfach absolut fest hänge und auch nach dem 10ten mal lesen keine neuen Informationen rausziehe.
Gruss und danke Paddy
 
S

SlaterB

Gast
ja, ruft nur die private auf,
und ja, 'dynamische Bindung' existiert, irgendeine Frage dazu?
 
M

maki

Gast
Paddel, du rufst bar() auf, diese Methode gehört zu "Ober"Klasse, d.h. sie kann nur die Methode furcht der Oberklasse aufrufen.
 

Paddel

Bekanntes Mitglied
maki hat gesagt.:
Paddel, du rufst bar() auf, diese Methode gehört zu "Ober"Klasse, d.h. sie kann nur die Methode furcht der Oberklasse aufrufen.

aber wieso ruft er denn dann die Funktion der Unerklasse auf sobald die Methode der oberen Klasse öffentlich ist?
 

Paddel

Bekanntes Mitglied
also das heisst wenn eine Oberklasse eine Unterklasse in einer Instanzvariable hat sprich:
Code:
Saeugetier[] saeuger = new Affee;
kann man hier von dynmaischer Bindung sprechen da zur Laufzeit erkannt wird das Affee eine Unterklasse der Klasse Säugetier ist. Wenn jetzt aber in der Klasse Sauegetier die aufgerufene Methode privat gemacht wird, beudetet dies das diese Methode statisch ist und die Methode der Oberklasse aufgerufen wird. Hab ich das richtig verstanden?
 
S

SlaterB

Gast
Affee ist nicht Kaffee sondern Affe

--------

dynamisches Binden hat nicht mit dem Ort von Exemplavariablen zu tun

-----

generell gilt, dass private Operationen statisch gebunden werden
(was nichts mit statischen Operationen zu tun hat!)

das sieht man am obigen Beispiel in aller Deutlichkeit,
warum musst du nun noch ein zweites ohne Code undeutlich beschriebenes Beispiel anscheinend mit dem gleichen Inhalt bringen?
 
M

maki

Gast
kann man hier von dynmaischer Bindung sprechen da zur Laufzeit erkannt wird das Affee eine Unterklasse der Klasse Säugetier ist.
Ja, in Java wird fast immer dynamisch gebunden, es gibt nur ein paar Ausnahmen.

Wenn jetzt aber in der Klasse Sauegetier die aufgerufene Methode privat gemacht wird, beudetet dies das diese Methode statisch ist und die Methode der Oberklasse aufgerufen wird.
Im Prinzip ja.
oder, wie es in der Insel heisst:

Obwohl Methodenaufrufe in Java in der Regel dynamisch gebunden sind, gibt es bei privaten, statischen und finalen Methoden eine Ausnahme; sie können nicht überschrieben werden und sind daher auch nicht polymorph gebunden.


Vorsicht mit dem Begriff "statisch", ist mehrdeutig, "statisch gebunden" ist da schon genauer, "statische Methode" ist etwas ganz anderes.
 

Paddel

Bekanntes Mitglied
Vielen Dank erstmal für die Hilfe! Habs so halbwegs aber mir fällt das unheimlich schwer irgendwie auf die Reihe zu kriegen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
L Dynamische Bindung Java Basics - Anfänger-Themen 3
W OOP Definition / Abgrenzung dynamische Bindung Java Basics - Anfänger-Themen 11
S Verwirrung - Dynamische Bindung greift nicht Java Basics - Anfänger-Themen 2
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
W Dynamische Bindung Java Basics - Anfänger-Themen 3
H statische,dynamische Bindung Java Basics - Anfänger-Themen 4
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Dynamische Datenstrukturen Java Basics - Anfänger-Themen 0
L Variablen Dynamische Variablenname Java Basics - Anfänger-Themen 9
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
M Schlüsselworte Dynamische Polymorhpie Java Basics - Anfänger-Themen 32
J OOP Dynamische Objektnamen Java Basics - Anfänger-Themen 6
Ste3et_C0st Dynamische While/For Schleife Java Basics - Anfänger-Themen 7
F Erste Schritte Dynamische Variablen Java Basics - Anfänger-Themen 15
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Dynamische Variable ist? Java Basics - Anfänger-Themen 11
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
P Klassen statische oder dynamische(?) Klasse Java Basics - Anfänger-Themen 3
J Dynamische Liste durchsuchen + anpassen Java Basics - Anfänger-Themen 3
A Schlüsselworte dynamische Stringteilung Java Basics - Anfänger-Themen 4
C Dynamische (AJAX) Inhalte einer Webseite mittels Java auslesen Java Basics - Anfänger-Themen 2
W Übungsaufgabe:Dynamische Datenstrukturen Java Basics - Anfänger-Themen 10
B dynamische erzeugung eines Objektes Java Basics - Anfänger-Themen 21
L Dynamische Objektgenerierung Java Basics - Anfänger-Themen 4
K Dynamische Bindungsregel Java Basics - Anfänger-Themen 2
B dynamische/statische Typen Java Basics - Anfänger-Themen 2
C dynamische JTextFields durchlaufen Java Basics - Anfänger-Themen 5
N OOP Dynamische Objekte und nach Parametern durchsuchen Java Basics - Anfänger-Themen 4
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
X dynamische Listen Java Basics - Anfänger-Themen 2
A Schnelle, dynamische, geordnete Datenstruktur? Java Basics - Anfänger-Themen 11
M Dynamische JButtons mit ActionListener Java Basics - Anfänger-Themen 7
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
0 Dynamische Datenstruktur ohne Duplikate und mit direkter Elementauswahl Java Basics - Anfänger-Themen 3
N Vererbung/Dynamische Bindungen Java Basics - Anfänger-Themen 15
P jsp tags und scriplets mischen dynamische werte an jsp tag Java Basics - Anfänger-Themen 2
S Dynamische Tabelle Java Basics - Anfänger-Themen 2
P Suche Ersatz für dynamische arrays Java Basics - Anfänger-Themen 2
T Dynamische Reaktionen Java Basics - Anfänger-Themen 29
F Dynamische Speicheranpassung und exe Java Basics - Anfänger-Themen 9
D Dynamische Objektnamen / Variablen als Objektnamen verwenden Java Basics - Anfänger-Themen 3
J dynamische Auswahl einer überladenen Methode Java Basics - Anfänger-Themen 5
C JTable und dynamische Speicherung Java Basics - Anfänger-Themen 2
M Dynamische Wertsetzung von Variablen durch Eingaben Java Basics - Anfänger-Themen 9
J Dynamische Größenveränderung der Komponenten verhindern Java Basics - Anfänger-Themen 8
C Dynamische Operatoren! Java Basics - Anfänger-Themen 5
R dynamische Variablennamen Java Basics - Anfänger-Themen 3
M dynamische, assziative Arrays Java Basics - Anfänger-Themen 2
I dynamische mehrdimensionales Array Java Basics - Anfänger-Themen 8
H Unterschied statischer/dynamische Typ einer Variablen Java Basics - Anfänger-Themen 2
0 Dynamische Speicherverwaltung Java Basics - Anfänger-Themen 4
B Dynamische If Anweisung Java Basics - Anfänger-Themen 13
B Dynamische Variable Java Basics - Anfänger-Themen 12
C Dynamische Arraygröße Java Basics - Anfänger-Themen 2
M dynamische tabellen Java Basics - Anfänger-Themen 2
G Java dynamische Arrays?? Java Basics - Anfänger-Themen 2
Arif OOP Die Bindung zwischen einem äußeren und einem inneren Objekt Java Basics - Anfänger-Themen 2
K Statische Bindung Java Basics - Anfänger-Themen 6
W Bindung bzw warum wird diese Methode aufgerufen? Java Basics - Anfänger-Themen 5
H lose Bindung/Koppelung von Klassen -ja wie jetzt? Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben