Example 1: dynamic polymorphism

class A {
	void print() {
		System.out.println("overridden method");
	}
}

class B extends A {
	void print() {
		System.out.println("overriding method1");
	}
}

class C extends A {
	void print() {
		System.out.println("overriding method2");
	}
}

public class DynamicPolymorphism {
	public static void main(String[] args) {
		A a = new A();
		A b = new B();
		A c = new C();

		a.print();
		b.print();
		c.print();
	}
}
Output
overridden method
overriding method1
overriding method2