Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Eine Funtion mit einer public visibility kann ja nicht nur in der Klasse selber und in Unterklassen gesehen werden, sondern auch von allen anderen Klassen.
Nun frage ich mich:
Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?
Wenn ich ein Objekt einer Klasse erzeuge, wird die Klasse, in der ich das tuhe doch automatisch zu einer Unterklasse der Klasse mit der Funktion oder?
Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder? Dann brauche ich doch nicht protected, sondern kann immer public nehmen (und pivate falls nötig) oder ?
> Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?
ja
> Wenn ich ein Objekt einer Klasse erzeuge, wird die Klasse, in der ich das tuhe doch automatisch zu einer Unterklasse der Klasse mit der Funktion oder?
nein
> Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder?
Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?
/sign SlaterB
Auf keinen Fall, um es zu verschärfen. Ableiten tust Du nur durch "extends"
Bit2_Gosu hat gesagt.:
Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder? Dann brauche ich doch nicht protected, sondern kann immer public nehmen (und pivate falls nötig) oder ?
/sign SlaterB
Du instanzierst Dir ein Objekt einer Klasse innerhalb einer anderen und hast dann dort Zugriff auf die Methoden der neuen Instanz. Und da siehst Du nur public und nicht private.
protected sehen nur Klassen, die eine Unterklasse von der Klasse ist, wo die protected methode drin ist.
Also ich habe eine Klasse "Matcher" mit der Funktion "protected final double simulate()".
Ich habe eine Klasse, "Events". In "Events" erzeuge ich ein Objekt der Klasse "Matcher" und rufe dann über dieses die Funktion simulate() auf.
Da das geht, muss "Events" also eine Unterklasse von "Matcher" sein (wegen protected). Wieso das denn? In "Events" steht ja nicht "extends Matcher" oder so ??
Noch eine letzte Frage, habe ich, damit ich weiß, dass ich das mit Unterklassen auch richtig verstanden habe
eine Klasse "test" extends die Klasse "blabb". Wenn ich in "test"
Code:
System.out.println(super.getClass())
sage, dann wird aber "test" und nicht "blabb" ausgegeben.
Ich dachte durch extends wir die Klasse mit dem extends zur Unterklasse der Klasse die extended wird?