public class PersegiLiskov {
    public static void main(String[] args) {
        PersegiPanjang bidang = new Persegi(); // subtype menggantikan supertype
        bidang.setLebar(4);
        bidang.setTinggi(5);
        System.out.println("Luas         : " + bidang.luas());
        System.out.println("Diharapkan   : " + (4 * 5));
    }
}

class PersegiPanjang {
    protected int lebar;
    protected int tinggi;

    void setLebar(int lebar) {
        this.lebar = lebar;
    }

    void setTinggi(int tinggi) {
        this.tinggi = tinggi;
    }

    int luas() {
        return lebar * tinggi;
    }
}

class Persegi extends PersegiPanjang {
    @Override
    void setLebar(int lebar) {
        this.lebar = lebar;
        this.tinggi = lebar; // menjaga sisi tetap sama
    }

    @Override
    void setTinggi(int tinggi) {
        this.lebar = tinggi;
        this.tinggi = tinggi;
    }
}
