title: Why can't reference to child Class object refer to the parent Class object?
body: <p>I was explaining OOP to my friend. I was unable to answer this question.</p>
  <p>I just escaped by saying, since OOP depicts the real world. In real world, parents can accommodate children but children cannot accommodate parents. same is the case in OOP.</p>
  <pre><code>class Parent
  {
    int prop1;
    int prop2;
  }
  
  class Child : Parent // class Child extends Parent  (in case of Java Lang.)
  {
    int prop3;
    int prop4;
    
    public static void Main()
    {
       Child aChild = new Child();
       Parent aParent = new Parent();
       aParent = aChild;// is perfectly valid.
       aChild = aParent;// is not valid. Why??
   
    }
  }
  </code></pre>
  <p>Why isn't this statement valid?</p>
  <pre><code> aChild = aParent;// is not valid. Why??
  </code></pre>
  <p>since <code>aChild</code>'s members are superset of <code>aParent</code>'s members. Then why can't <code>aChild</code> accommodate a parent.</p>