Main.java
package com.company;


interface Zwierzak {
    int waga = 99;      // właściwość statyczna
    void podajGatunet() ;
    //void podajKarme();
}

class Kon implements Zwierzak {
    @Override
    public void podajGatunet() {
        System.out.println("-->Mój gatunek koń");
    }
}

class Kot implements Zwierzak {
    @Override
    public void podajGatunet() {
        System.out.println("-->Mój gatunek kot");
    }
}

class Pies implements Zwierzak {
    @Override
    public void podajGatunet() {
        System.out.println("-->Mój gatunek pies");
    }
}

public class Main {

    public static void main(String[] args) {
        Zwierzak zwierzak, kon, kot, pies;

        kon = new Kon();
        kon.podajGatunet();

        new Kot().podajGatunet();
        new Pies().podajGatunet();

        var kocur = new Kot();  // Java 10+
        kocur.podajGatunet();

        Zwierzak sssss = new Zwierzak() {
            @Override
            public void podajGatunet() {

            }
        };

        Zwierzak nowyZwierz = new Zwierzak() {
            @Override
            public void podajGatunet() {
                System.out.println("-->Mój gatunek zwierz anonimowy, nie mam nazwanej klasy");
            }
        };
        nowyZwierz.podajGatunet();
    }
}