title: How to call it? Declare a father class, assign a child class
body: <p>First of all, I am not trying to do anything particular. I know how to do this, it is just that I do not know how is it called.</p>
  
  <p>When you write a code like this:</p>
  
  <pre><code>List&lt;Mammal&gt; myAnimals = new List&lt;Mammal&gt;();
  myAnimals.Add(new Dog());
  myAnimals.Add(new Cat());
  </code></pre>
  
  <p>I want to know if declaring an object of class Mammal and assigining a child class (in this example.. cat or dog) has a name.</p>
  
  <p>To make it a bit clearer on what I am looking for.
  I could have a method called <code>SayHi()</code> in class Mammal, and override it in class Dog and Cat. I know that is called overriding.</p>
  
  <p>Does what I said first has a special name? is it an attribute from oop?</p>