Hejka witam wszystkich, dzisiaj chciałem poprosić o wytłumaczenie działania poniższego kodu bo troche nie wiem w jaki sposób wyszedł na konsoli taki a nie inny wynik
public class kapa {
public static void main(String []args){
A tab[];
A a=new A(10);
B b=new B(20, 3.14f);
C c=new C(30, 6.28f, 'b');
tab=new A[]{a, b, c};
show(tab);
a.inc();
b.mul(3.0f);
show(tab);
c.wrtC='d';
show(tab);
}
public static void show(A tab[]){ //metoda do tab A
for (int i=0;i<tab.length; i++){
System.out.println(tab[i].toString());
}
}
}
class A{ //klasa A
int wrtI; // zmienna wrtI zadeklarowana w klasie A
public A(int wrtI){ // konstruktor do klasy A
this.wrtI=wrtI;
System.out.println("A"+wrtI);// tutaj drukuje nam A10
}
public void inc(){
wrtI++;
}
public String toString(){
return ""+wrtI;
}
}
class B extends A{
float wrtF;
public B(int wrtI, float wrtF){
super(wrtI);
this.wrtF=wrtF;
System.out.println("b"+wrtF);
}
public void mul(int mno){
wrtF*=mno+1;
}
public void mul(float mno){
wrtF*=mno;
}
public String toString(){
return ""+wrtF;
}
}
class C extends B{
char wrtC='a';
public C(int wrtI, float wrtF, char wrtC){
super(wrtI, wrtF);
wrtC=wrtC;
System.out.println("A"+wrtC);
}
public String toString(){
return ""+wrtC;
}
}
wynik na konsoli:
A10
A20
b3.14
A30
b6.28
Ab
10
3.14
a
11
9.42
a
11
9.42
d