S-Force
Ensign
- Registriert
- Nov. 2007
- Beiträge
- 238
Hallo,
ich habe eine Aufgabe und bin mir nicht sicher wie genau Java bei der Vererbung hier arbeitet. Ich hoffe mir kann jemand erklären warum der Java Compiler genau das macht was da rauskommt...
Warum kommt bei b.g() 12 und c.h() 8 als Ergebnis heraus?
Gruß
ich habe eine Aufgabe und bin mir nicht sicher wie genau Java bei der Vererbung hier arbeitet. Ich hoffe mir kann jemand erklären warum der Java Compiler genau das macht was da rauskommt...
Code:
package Vererbung;
public class Main {
public static void main(String[] args) {
A a=new A();
B b=new B();
C c=new C();
System.out.println(b.g()); //-> Ergebnis = 12
System.out.println(c.h()); //-> Ergebnis = 8
System.out.println(c.i()); //-> Ergebnis = 8
}
public class A {
private int a=1;
private int b=2;
protected int c=3;
public int f(){
return a;
}
public int g(){
return f() +b;
}
}
public class B extends A{
protected int b=10;
public int f(){
return b;
}
public int h(){
return h2() +c;
}
private int h2(){
return 5;
}
public int i(){
return super.f();
}
}
public class C extends B {
public int g(){
return f() +b;
}
protected int h2(){
return 6;
}
}
}
Warum kommt bei b.g() 12 und c.h() 8 als Ergebnis heraus?
Gruß