Why would people Cast Objects : <p>While studying the oracle docs I ran into Casting objects and I don't understand the purpose of why people would use it.  </p>

<p>so lets say in main you have </p>

<pre><code>Person p2 = new Student();
Person p3 = new GraduateStudent();
</code></pre>

<p>and then you have separate classes  </p>

<pre><code>class Person
{

}

class Student extends Person
{

}

class GraduateStudent extends Student
{

}
</code></pre>

<p>I understand that a student is person and that a graduate student is a person 
but why would a person write </p>

<pre><code>Person s1 = new Student()
</code></pre>

<p>instead of </p>

<pre><code>Student s1 = new Student()
</code></pre>
