title: Override Property in Subclass from Baseclass Interface
body: <p>i got a problem with overwriting a property which comes from an Interface. I got one Base Class which implements an Interface. This class has arround 10 Subclasses. The subclasses should overwrite the property which comes from the Interface in some cases. </p>
  
  <p>My problem is, that i access the property while not knowing what type of class the object has and the object allways returns the  base class property value instead of the overwritten subclass property value.</p>
  
  <p>Example Code simplified:</p>
  
  <pre><code>public interface Inf
  {
     string Info
     {
       get;      
     }
  }
  
  
  public class BaseClass : Inf
  {
  
     public string Info
     {
        get { return "Something"; }
     }
  
  }
  
  
  public class SubClass : BaseClass 
  {
  
     new public string Info
     {
        get { return "Something else"; }
     }
  
  }
  </code></pre>
  
  <p>in another class i have to access the property, i dont know if the object is type of base or subclass at this moment</p>
  
  <pre><code>List&lt;BaseClass&gt; listBase = new List&lt;BaseClass&gt;();
  listBase.Add(new BaseClass());
  listBase.Add(new SubClass());
  
  foreach (BaseClass obj in listBase)
  {
    Console.WriteLine(obj.Info);
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>Something
  Something
  </code></pre>
  
  <p>wanted output:</p>
  
  <pre><code>Something
  Something else
  </code></pre>
  
  <p>((SubClass)obj).Info  would output "Something else"
  but at this certain moment i dont know what kind of class the object is. (i have arround 10 different subclasses).</p>
  
  <p>Do i have to cast all objects to it's real class? i got like 100-200 objects in this list and arround 10 different classes. Or is there any other way to do this?</p>
  
  <p>any help appreciated :)</p>