Hallo,
ich habe eine Klasse A (im package a) und eine Klasse D (im package b).
Klasse D ist eine Unterklasse von A. Könnt ihr mir sagen wieso der Aufruf "k += a.x;" innerhalb der Klasse D in der Methode int bar() einen Übersetzungsfehler wirft?
Das Attribut x ist in der public Klasse A deklariert und als protected gekennzeichnet. Somit funktioniert der Aufruf in Unterklassen. Der Aufruf in Klasse D in der Methode bar() "k += x;" funktioniert somit. Aber was ist der genaue Fehler bei "k += a.x;"? Liegt es daran, dass man das kleine a vor der Variablen x nicht benötigt weil x alleine ausreicht? Möchte den Fehler gerne verstehen.
Vielen Dank.
[CODE lang="java" title="Klasse A im package a:"]package a;
public class A {
public int w;
protected int x;
int z;
private int y;
}[/CODE]
[CODE lang="java" title="Klasse D im package b:"]package b;
class D extends a.A{
public int m;
int w;
protected int s;
private int t;
int bar(a.A a, D d) {
int k = w;
k += super.w;
k += x;
k += a.x;
k += d.t;
k += m;
k += y; // ist private in Klasse A
k += z; // ist nur innerhalb vom package a sichtbar
return k;
}
}[/CODE]
ich habe eine Klasse A (im package a) und eine Klasse D (im package b).
Klasse D ist eine Unterklasse von A. Könnt ihr mir sagen wieso der Aufruf "k += a.x;" innerhalb der Klasse D in der Methode int bar() einen Übersetzungsfehler wirft?
Das Attribut x ist in der public Klasse A deklariert und als protected gekennzeichnet. Somit funktioniert der Aufruf in Unterklassen. Der Aufruf in Klasse D in der Methode bar() "k += x;" funktioniert somit. Aber was ist der genaue Fehler bei "k += a.x;"? Liegt es daran, dass man das kleine a vor der Variablen x nicht benötigt weil x alleine ausreicht? Möchte den Fehler gerne verstehen.
Vielen Dank.
[CODE lang="java" title="Klasse A im package a:"]package a;
public class A {
public int w;
protected int x;
int z;
private int y;
}[/CODE]
[CODE lang="java" title="Klasse D im package b:"]package b;
class D extends a.A{
public int m;
int w;
protected int s;
private int t;
int bar(a.A a, D d) {
int k = w;
k += super.w;
k += x;
k += a.x;
k += d.t;
k += m;
k += y; // ist private in Klasse A
k += z; // ist nur innerhalb vom package a sichtbar
return k;
}
}[/CODE]