Program to demonstrate how to implement Polymorphism in Java.
Output of the program :
package com.hubberspot.examples;
class Shape {
public void draw(){
System.out.println("Shape drawn ... ");
}
}
class Rectangle extends Shape {
public void draw(){
System.out.println("Rectangle drawn ... ");
}
}
class Circle extends Shape {
public void draw(){
System.out.println("Circle drawn ... ");
}
}
// Polymorphism implementing class
// Performing decoupling as well
// Later in design if a new shape appears
// the functionality of the class has
// decoupled the object creation hardcoding
// to a polymorphic way using setShape()
// and drawShape()
class Drawing {
private Shape s;
// Setting polymorphic behavior and
// this class doesnt care which shape
// it is.
public void setShape(Shape s) {
this.s = s;
}
public void drawShape() {
this.s.draw();
}
}
public class Test {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle();
Circle circle = new Circle();
Drawing drawing = new Drawing();
drawing.setShape(rectangle);
drawing.drawShape();
drawing.setShape(circle);
drawing.drawShape();
}
}
Output of the program :
