java ćwiczenie

0

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

0

Dokładnie który wynik jest niezrozumiały?
Zgaduję że chodzi o błąd:

wrtC=wrtC;

Używaj znaczników do wydzielenia kodu:
```java
kod źródłowy
```

1 użytkowników online, w tym zalogowanych: 0, gości: 1