Hogy lehet összehozni egy "gyémánt" öröklést Javaban?

0 értékelés
140 megtekintés
Madsane (10 pont) kérdezte Júl 2.
class A {

private int AA;

}

class B extends A {

private int BB;

}

class C extends A {

private int CC;

}

Ezekből hogy hozunk össze egy osztályt aminek megvan az AA, BB és CC változója is?

2 Válasz

0 értékelés
Isti (2 pont) válaszolta meg Júl 2.

Hi, 

Tudomásom szerint a Javaban egy osztály nem tud örökölni két osztálytól. Viszont tud több interfészt is implementálni, ezért ha nagyon muszáj, talán valami olyasmit lehetne tenni, hogy:

class A {
    private int aA;
}

public interface Bb {
    public int getBb();
}

public interface Cc {
    public int getCc();
}

public class Dd extends A implements Bb ,  Cc {

    public Dd() {
    }

    @Override
    public int getCc() {
        return 0;
    }

    @Override
    public int getBb() {
        return 0;
    }
}

De várjuk meg az okosabbakat, hogy mit mondanak! smiley

Madsane (10 pont) szólt hozzá Júl 2.
A, B és C osztályoknak vannak saját változóik. Interfaceben csak public static final változó lehet, ami nem megfelelő. A D osztálynak szüksége lenne az A, B és C változóra is amik nem konstansok.
0 értékelés
lbarjak (6 pont) válaszolta meg Júl 22.
lbarjak szerkesztett Júl 22.

Például beágyazott osztályokkal:
class A {
    private int AA = 1;
    public static void main(String[] a) {
        new A();
    }
    A() {
        new B();
    }
    class B {    
        private int BB = 2;
        B() {
            new C();
        }
        class C {
            private int CC = 3;
            C() {
                System.out.println(AA + BB + CC);
            }
        }
    }
}

...