public class Rectangle {
}
public class Window extends Rectangle {
}
---

public class Window {

    Rectangle menubar;
    Rectangle statusbar;
    Rectangle mainview;

}
---

public abstract class Shape{
    public abstract void draw();
}
public class Circle extends Shape{
    public void draw() {
        System.out.println("Rysuję koło.");
    }
}
public class Rectangle extends Shape{
    public void draw() {
        System.out.println("Rysuję prostokąt.");
    }
}
public class Star extends Shape{
    public void draw() {
        System.out.println("Rysuję gwiazdę.");
    }
}
---

public class TestShape {

    public static void main(String args[]) {

        Circle circle = new Circle();
        Rectangle rectangle = new Rectangle();
        Star star = new Star();

        circle.draw();
        rectangle.draw();
        star.draw();
    }
}
---

public class Triangle extends Shape{
    public void draw() {
        System.out.println("Rysuję trójkąt.");
    }
}
---

public class TestShape {

    public static void main(String args[]) {

        Circle circle = new Circle();
        Rectangle rectangle = new Rectangle();
        Star star = new Star();
        Triangle triangle = new Triangle ();

        circle.draw();
        rectangle.draw();
        star.draw();
        triangle.draw();

    }

}
---

public class TestShape {

    public static void main(String args[]) {

        Circle circle = new Circle();
        Rectangle rectangle = new Rectangle();
        Star star = new Star();

        drawMe(circle);
        drawMe(rectangle);
        drawMe(star);

    }

    static void drawMe(Shape s) {
        s.draw();
    }

}
