๐Ÿšฝ๐Ÿ’ฆ OOP in Java & Python — The Toilet Universe

Featuring Toilet Seat, Flush Tank, Siphon & Washbasin — the funniest and most practical OOP analogy ever taught.

1️⃣ Classes & Objects

Every bathroom item becomes a class. Your bathroom becomes an object universe!

Java Version

class ToiletSeat {
    String type = "Soft-Close";
    boolean isUp = false;
}

class Siphon {
    void suckWater() {
        System.out.println("Siphon: gurgle gurgle...");
    }
}

class FlushTank {
    int waterLevel = 10;
    Siphon siphon = new Siphon();
}

class WashBasin {
    boolean isTapOpen = false;
    void openTap() {
        System.out.println("Water flowing...");
    }
}

Python Version

class ToiletSeat:
    def __init__(self):
        self.type = "Soft-Close"
        self.is_up = False

class Siphon:
    def suck_water(self):
        print("Siphon: suction activated!")

class FlushTank:
    def __init__(self):
        self.water_level = 10
        self.siphon = Siphon()

class WashBasin:
    def open_tap(self):
        print("Water flowing...")

2️⃣ Encapsulation

Encapsulation hides the messy parts — like the inside of a flush tank!

class FlushTank {
    private int waterLevel = 10;
    private Siphon siphon = new Siphon();
    public void pressButton() {
        siphon.suckWater();
        System.out.println("FLUSH!");
    }
}

Python Version

class FlushTank:
    def __init__(self):
        self.__water = 10
        self.__siphon = Siphon()
    def press_button(self):
        self.__siphon.suck_water()
        print("FLUSH!")

3️⃣ Inheritance

Bathroom items can have upgraded children.

class ToiletSeat {
    void sit() { System.out.println("Sitting..."); }
}

class HeatedSeat extends ToiletSeat {
    void heat() { System.out.println("Heating activated!"); }
}

4️⃣ Polymorphism

One clean() method → four behaviors!

class BathroomItem {
    void clean() { System.out.println("Cleaning bathroom item."); }
}

class Siphon extends BathroomItem {
    @Override
    void clean() { System.out.println("Cleaning siphon — wear mask!"); }
}

5️⃣ Abstraction

You push the flush button. You don’t care how the siphon bends like a cobra inside.

6️⃣ Composition

class Bathroom {
    ToiletSeat seat = new ToiletSeat();
    FlushTank tank = new FlushTank();
    WashBasin basin = new WashBasin();

    void useBathroom() {
        seat.sit();
        tank.pressButton();
        basin.openTap();
    }
}

๐Ÿš€ Run Python Toilet-OOP Code

Output will appear here...
    

๐Ÿงป Interactive Toilet OOP Model

Click an item to reveal the OOP concept it represents.

Toilet Seat Flush Tank Siphon Wash Basin
๐Ÿ‘‰ Click an item to learn the OOP concept!

๐ŸŽ‰ Congratulations! You just learned OOP using the most sacred innovation of human engineering — the Bathroom.