Hallo,
ich bin grad bei der Abivorbereitung und dabei ist mir folgendes aufgefallen.
Kapselung erfolgt ja generell auf Klassenebene.
Ich habe ein Objekt a1 der Klasse A und ein Objekt a2 der Klasse B und B ist eine Unterklasse von A.
Wenn in A jetzt Attribute mit der Sichtbarkeit protected versehen sind müssen diese doch definitionsgemäß in allen Klassen und Unterklassen von A sichtbar sein. Das heißt folgendes müsste funktionieren:
Tja das fuunktioniert aber nicht, man kann in B natürlich mit this.protectedVariable auf die Variable im eigene Objekt zugreifen aber das wäre ja dann wieder auf Objektebene und die Kapselung sollte ja theoretisch auf Klassenebene stattfinden.
Nun meine Frage: Bin ich da irgendwie grad auf dem Holzweg oder ist die Kapselung da einfach schlecht umgesetzt in Java?
Gruß Tobi
ich bin grad bei der Abivorbereitung und dabei ist mir folgendes aufgefallen.
Kapselung erfolgt ja generell auf Klassenebene.
Ich habe ein Objekt a1 der Klasse A und ein Objekt a2 der Klasse B und B ist eine Unterklasse von A.
Wenn in A jetzt Attribute mit der Sichtbarkeit protected versehen sind müssen diese doch definitionsgemäß in allen Klassen und Unterklassen von A sichtbar sein. Das heißt folgendes müsste funktionieren:
Code:
// In Klasse kapselung.package2.B:
kapselung.package1.A a1 = new kapselung.package1.A();
System.out.println(a1.protectedVariable);
Tja das fuunktioniert aber nicht, man kann in B natürlich mit this.protectedVariable auf die Variable im eigene Objekt zugreifen aber das wäre ja dann wieder auf Objektebene und die Kapselung sollte ja theoretisch auf Klassenebene stattfinden.
Nun meine Frage: Bin ich da irgendwie grad auf dem Holzweg oder ist die Kapselung da einfach schlecht umgesetzt in Java?
Gruß Tobi