ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
264
264
EMPFEHLEN
-
17.09.11 20:32 #1
Hellas!
Also, gegeben ist eine Klasse A mit einer protected methode a(). Des weiteren eine Klasse B die von A ableitet und eine Methode b(A a) besitzt.
Warum darf die Methode b nicht auf die Methode a() der Instanz a zugreifen?!
Ich möchte eigentlich erreichen, dass nur abgeleitete Klassen von A auf die methode a() zugreifen können. Allerdings abgeleitete Klassen auch auf Instanzen von A.
In einem klassischem equals darf die Klasse ja auch direkt auf das Attribut einer anderen Klasse zugreifen, Bsp:
Code java:1 2 3 4 5 6 7 8 9 10 11
class A { private long attr = 0L; public boolean equals(Object obj) { A a = (A) obj; return attr == a.attr; } }
Klar, es handelt sich um ein und dieselbe Klasse - trotzdem dachte ich protected ist hier etwas lockerer.Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
17.09.11 20:49 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Das kann nicht sein! ein bisschen Code mehr bitte!
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
18.09.11 15:35 #3
Doch, jetzt habe ich das Problem gefunden. Die Methode b(A a) der Unterklasse B darf auf die Methode a() der Instanz a zugreifen, sofern die Klasse B im selben Package wie A liegt.
Ist bei mir aber leider nicht der Fall
Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
19.09.11 19:51 #4
- Registriert seit
- Jun 2011
- Beiträge
- 12
Wenn du jetzt mit "ableiten" erben meinst, dann müsstest du die Methode überschreiben und mit einem super-Aufruf arbeiten, damit die Methode in der abgeleiteten Klasse ohne weitere Probleme verwendet werden kann. Nebenher kannst du dann auch den Modifier etwas lockern und auf public setzen, ist aber nicht notwendig.
Soweit ich das verstanden habe
-
20.09.11 10:59 #5
Hellas!
Wenn ich in der Klasse B die Methode a überschreibe bringt mir das eigentlich nichts.
Als hier doch ein Beispiel-Code:
Code java:1 2 3 4 5 6 7 8
package a; public class A { protected void a() { System.out.println("A:a()"); } }
Klasse B lässt sich nicht kompilieren:
Code java:1 2 3 4 5 6 7 8 9 10 11 12
package b; import a.A; public class B extends A { public void b(A a) { System.out.println("B:b(A)"); a.a(); // The method a() from the type A is not visible } }
Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
20.09.11 18:50 #6
- Registriert seit
- Jun 2011
- Beiträge
- 12
Ich hab das auch jetzt anderst gemeint. Du hast es nicht so umgesetzt, wie ich das meinte. Ich meinte das so:
Code java:1 2 3 4 5 6 7 8
package a; public class A { protected void a() { System.out.println("A:a()"); } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
package b; import a.A; public class B extends A { public void b() { System.out.println("B:b(A)"); a(); } @Override public void a() { super.a(); } }
und meine Testklasse:
Code java:1 2 3 4 5 6 7 8 9 10 11 12
package test; import b.B; public class Test { static B b = new B(); public static void main(String[] args) { b.b(); } }
So funktioniert es, denn durch die Vererbung ist die Methode bekannt und kann überschrieben
werden, damit sie in der Klasse sichtbar ist. Mit dem Codeschnipsel rufst du die Methode aus der Hauptklasse auf und verwendet neben möglichen eigenen Code der Klasse B den Inhalt der Klasse A.Code java:1
super.a()
Das habe ich damit gemeint.
Ähnliche Themen
-
C++ && protected
Von Enumerator im Forum C/C++Antworten: 5Letzter Beitrag: 16.02.10, 11:09 -
PC CAMERA von Protected Treiber are missing
Von NetteMann im Forum HardwareAntworten: 1Letzter Beitrag: 14.06.08, 21:45 -
Was ist das Beste um in den Protected-Mode zu schalten
Von billgatesm im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 30.07.05, 18:53 -
protected mode einschalten
Von Tanor im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 17.02.05, 12:59 -
protected
Von Cstar im Forum JavaAntworten: 5Letzter Beitrag: 30.06.04, 10:30





Zitieren
Login





