title: Importance of declaring object using superclass and derivated class
body: <p>I cannot understand the importance of declaring object using the Type Superclass and the Son Class.</p>
  
  <p>Let's say in the Superclass called Person I've declared the following members </p>
  
  <pre><code>string Name
  string Lastname 
  
  Public Person(string name, string lastname)
  
  Name = name
  Lastname = lastname 
  </code></pre>
  
  <p>Now in the main I can type </p>
  
  <p><code>Person p = new Person()</code> and get access to Name and Lastname field. </p>
  
  <p>Now I create the Class Student, which is going to inerith the Name and Lastnane fields. Now I type that Student has a new fields, called</p>
  
  <pre><code>int Graduate
  </code></pre>
  
  <p>And in the constructor I put </p>
  
  <pre><code>Public Student(int graduate) : base (name, lastname) 
  
  Graduate = graduate
  </code></pre>
  
  <p>In the main now I can type </p>
  
  <pre><code>Student s = new Student
  </code></pre>
  
  <p>And get access to the Graduate field. </p>
  
  <p>But now, what's the difference between typing </p>
  
  <pre><code>Student S = new Student() and
  Person p1 = new Student() 
  </code></pre>
  
  <p>If I'm going to inherit the constructor of the Superclass, why in some cases should I declare the Superclass followed by the constructor of the derived Class? </p>