Dziedziczenie – rozwiązanie zadania.

package pl.am.object2.lesson41;

public class Kot extends ZwierzeDomowe {
    public Kot(String nazwa, double masa) {
        super(nazwa, masa);
    }

    @Override
    public void dajGlos() {
        System.out.println("miauuuuu");
    }
}
package pl.am.object2.lesson41;

public class Krowa extends ZwierzeHodowlane {
    private static int nextId = 1;
    private int id;

    public Krowa(double masa) {
        super(masa);
        id = nextId;
        nextId++;
    }

    @Override
    public void dajGlos() {
        System.out.println("Muuuuuuuuuuu");
    }

    public double dajMleko() {
        System.out.println("Dojenie krowy trwa...");
        return masa*0.01;
    }
}
package pl.am.object2.lesson41;

public class Kura extends ZwierzeHodowlane {
    public Kura(double masa) {
        super(masa);
    }

    @Override
    public void dajGlos() {
        System.out.println("ko ko ko ko ko ko");
    }

    public void zniesJajo() {
        System.out.println("Jajo zostal zniesione");
    }
}
package pl.am.object2.lesson41;

public class Pies extends ZwierzeDomowe{
    public Pies(String nazwa, double masa) {
        super(nazwa, masa);
    }

    @Override
    public void dajGlos() {
        System.out.println("hał hał");
    }

    public void podajLape() {
        System.out.println("podaje łapę");
    }
}
package pl.am.object2.lesson41;

public class Test {
    public static void main(String[] args) {
        Pies pies = new Pies("łatek", 15);
        Kot kot = new Kot("mruczek", 3);
        Kura kura = new Kura(2);
        Krowa krowa = new Krowa(200);

        pies.dajGlos();
        pies.podajLape();
        kot.dajGlos();
        kura.dajGlos();
        kura.zniesJajo();
        krowa.dajGlos();
        krowa.dajMleko();
    }
}
package pl.am.object2.lesson41;

public abstract class Zwierze {
    protected double masa;

    public Zwierze(double masa) {
        this.masa = masa;
    }

    public abstract void dajGlos();
}
package pl.am.object2.lesson41;

public abstract class ZwierzeDomowe extends Zwierze {
    protected String nazwa;

    public ZwierzeDomowe(String nazwa, double masa) {
        super(masa);
        this.nazwa = nazwa;
    }
}
package pl.am.object2.lesson41;

public abstract class ZwierzeHodowlane extends Zwierze {
    public ZwierzeHodowlane(double masa) {
        super(masa);
    }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *